2010-06-10 3 views
2

bash의 루프에서 표준 입력을 읽고 텍스트를 파일에 추가하려면 어떻게해야합니까?

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

을 다음 그러나 두 번째 echo 문이 실행되지 않는 나는 bash는 스크립트가 말한다. 조금도. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

나는 빈 안

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

$f를 통해이를 실행하고 있습니다. tail이 파일에 변경 사항을 알리는 경우에만 출력됩니다.

+3

'bash -x '은 (는) 친구가 여기 있습니다 – mob

답변

6

변수 $f이 비어있을 수 있으며 스크립트가 인수없이 cat에 전화를 걸어 걸려 있습니다. 당신은

while read f 

대신

while read $f 

의하고 싶은 말 했나요?

+0

'echo "aaa">> output.txt;'행을 추가 할 때까지 모든 것이 작동합니다. 나는 '꼬리'명령으로 파이핑 중입니다. 질문이 업데이트되었습니다. –

+0

그들이 말하는 것처럼, "Binjo!" –

+0

@ 케빈, 혼란스러워. –

관련 문제