Cat命令意外由文件结尾分隔

时间:2013-08-19 11:05:27

标签: shell unix

我有脚本

#!/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”

1 个答案:

答案 0 :(得分:2)

而不是

cat $line << "notfound.txt"

说:

echo $line > "notfound.txt"

您没有cat个变量,而是echo个变量。 command > file会将命令的输出重定向到文件,覆盖它。如果您想追加该文件,请改用>>

您可以详细了解重定向here