Ce qui suit est un script que j'ai écrit pour exécuter un exécutable ./runnable
sur l'argument/fichier d'entrée input
.Erreur dans le script bash lors de la lecture d'un fichier
Il prend l'entrée standard d'un autre fichier appelé final_file
et le sort dans un fichier appelé outfile
. Il y a 91 lignes dans final_file
(c'est-à-dire, 91 entrées séparées séparées par un espace standard) et par conséquent le script bash doit appeler l'entrée ./runnable
91 fois. Mais, je ne sais pas pourquoi il appelle une seule fois. Des suggestions sur ce qui ne va pas?
#!/bin/bash
OUTFILE=outfile
(
a=0
while read line
do
./runnable input
echo "This is line number: $a"
a='expr $a+ 1'
done<final_file
) >$OUTFILE
Pour clarifier, le final_file
ressemble
_ _DATA_ _
2,9,2,9,10,0,38
2,9,2,10,11,0,0
2,9,2,11,12,0,0
2,9,2,12,13,0,0
2,9,2,13,0,1,4
2,9,2,13,3,2,2
et ainsi de suite. Une ligne, à la fois, est l'entrée standard. Le nombre de lignes dans final_file
correspond au nombre de fois que l'entrée standard est donnée. Donc, dans le cas ci-dessus, le script devrait fonctionner six fois puisqu'il y a six lignes.
@Zan: Faire qui confirme le fait que le script est en train de lire que la première ligne de « finalfile » et non de repos. Mais, je veux savoir comment résoudre ce problème ou ce qui se passe sur ce qui le fait faire la même chose. – shubster