我有脚本
#!/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
我的目标是测试变量i的值。如果是0那么我想将存储在变量$ line中的值重定向到文件“notfound.txt”
答案 0 :(得分:2)
而不是
cat $line << "notfound.txt"
说:
echo $line > "notfound.txt"
您没有cat
个变量,而是echo
个变量。 command > file
会将命令的输出重定向到文件,覆盖它。如果您想追加该文件,请改用>>
。
您可以详细了解重定向here。