BASH:可以在命令行上 grep,但不能在脚本中

Cra*_*ash 4 linux bash grep

已经做了一百万次了,但这一次它不起作用我尝试从文件中 grep“$TITLE”。在命令行上它正在工作,“$TITLE”变量不为空,但是当我运行脚本时它什么也没发现

*标题包含多个单词

echo "$TITLE"
cat PAGE.$TEMP.2 | grep "$TITLE"
Run Code Online (Sandbox Code Playgroud)

我试过的:

echo "cat PAGE.$TEMP.2 | grep $TITLE"
Run Code Online (Sandbox Code Playgroud)

查看标题是否不为空且文件名是否确实存在

cda*_*rke 5

您确定$TITLE不存在文件中不存在的前导或尾随空格吗?您对字符串的修复会在执行之前删除空格,因此它不会看到它。

例如,对于包含“第一行”的文件:

/home/user1> TITLE=' one '
/home/user1> grep "$TITLE" text.txt
/home/user1> cat text.txt | grep $TITLE
Line one
Run Code Online (Sandbox Code Playgroud)

尝试一下echo "<$TITLE>",或者echo "$TITLE"|od -xc哪个可以让您发现错误的字符。