2015-06-22 4 views
1

Я новичок в bash и записываю скрипт для чтения переменных, которые хранятся в каждой строке текстового файла (есть тысячи этих переменных). Поэтому я попытался написать сценарий, который будет читать строки и автоматически выводить решение на экран и сохранять в другой текстовый файл.Хотя цикл в bash с использованием переменной из txt-файла

./reader.sh > solution.text 

Проблемы я сталкиваюсь в настоящее время у меня есть только одна переменного магазин в Sheetone.txt для тестирования цели, которая должна занять около 2 секунд для вывода всего, но он застрял в то время цикла, а также не выводит решение.

#!/bin/bash 
file=Sheetone.txt 
while IFS= read -r line 
do 
     echo sh /usr/local/test/bin/test -ID $line -I 
done 
+3

Ваш 'в то время как read' не имеет вход, вы можете сказать' делать ... сделал fedorqui

+0

Использовать 'done <" $ file "' – anubhava

+0

спасибо, что решить проблему – user2683631

ответ

2

Как указано в комментариях, вы должны предоставить «что-то» для вашего while цикла. Конструкция while написана таким образом, который будет выполняться с условием; если файл указан, он будет действовать до тех пор, пока не погаснет read.

#!/bin/bash 
file=Sheetone.txt 
while IFS= read -r line 
do 
    echo sh /usr/local/test/bin/test -ID $line -I 
done < "$file" 
# -----^^^^^^^ a file! 

В противном случае, это было как езда на велосипеде без колес ...