Ниже приведен скрипт, который я написал для запуска исполняемого файла ./runnable
для файла аргументов / ввода input
.
Он принимает стандартный ввод из другого файла с именем final_file
и выводит его в файл с именем outfile
. В final_file
имеется 91 строка (то есть 91 различное стандартное вводимое через пробел), и поэтому сценарий bash должен вызвать вход ./runnable
91 раз.
Но я не уверен, почему он звонит только один раз. Любые предложения о том, что происходит не так?
#!/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
Чтобы уточнить, final_file
выглядит как
_ _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
и так далее. Одной строкой является стандартный ввод. Количество строк в final_file
соответствует числу раз, которое дается стандартному вводу. Таким образом, в приведенном выше случае сценарий должен выполняться шесть раз, поскольку в нем шесть строк.