Как я могу прочитать стандартный ввод в цикле в bash, а затем добавить текст в файл? - PullRequest
2 голосов
/ 11 июня 2010

Скажем, у меня есть скрипт bash, следующий:

while
 read $f;
do
 cat $f >> output.txt;
 echo "aaa" >> output.txt;
done

Все же второй оператор echo не выполняется. Совсем. Что я делаю не так?

Я запускаю это через

tail -f /var/log/somelog | ./script.sh

$f не должно быть пустым. Он должен выводиться только тогда, когда tail замечает изменение в файле.

1 Ответ

6 голосов
/ 11 июня 2010

Переменная $f, вероятно, пуста, и ваш скрипт зависает при вызове cat без аргументов. Вы хотели сказать

while read f

вместо

while read $f

...