2013-08-19 4 views
0

У меня есть сценарийкоманда Cat Неожиданное разграничены истекшим файла

#!/bin/bash 
set i=0; 
while read line 
do 
    echo "$line"; 
    $i < cat "my.log" | grep -w "$line" | wc -l; 
    echo "$i"; 
    if [ "$i" == 0 ]; then 
    cat $line << "notfound.txt" 
    fi 
    i=0; 
done < "test.txt" 

, выдающий ошибку

./test.sh: line 13: warning: here-document at line 10 delimited by end-of-file (wanted `notfound.txt') 
./test.sh: line 14: syntax error: unexpected end of file 

Моя цель состоит в том, чтобы проверить значение переменной я. Если 0, то я хотел бы перенаправить значение, сохраненное в переменной $ строки в файл «notfound.txt»

+0

Несвязанный с вашей заявленной проблемой, но '$ i twalberg

ответ

2

Вместо

cat $line << "notfound.txt" 

говорят:

echo $line > "notfound.txt" 

Вы дон 't cat переменные, вы вместо этого используете echo. command > file перенаправляет вывод команды в файл , переписывая его. Если вы хотите добавить файл, используйте вместо этого >>.

Вы можете узнать больше о перенаправлении here.

+0

Спасибо. Я только что заменил> на >>, так как мне нужны значения, которые нужно добавить к существующему файлу. Я приму свой ответ, как только stackoverlow позволит мне :-) – Macky