我试图找到两个变量在脚本目录中连接的位置,但是当我尝试以下操作时:
grep -lire "$DATA_PATH . $AWARDS_YEAR" *
我收到“未定义的变量”错误...
我想我可以通过使用以下方法来逃避 $s:
grep -lire "\$DATA_PATH . \$AWARDS_YEAR" *
但是我得到了同样的错误——那么,你如何用 $s 来查找字符串?
我试图找到两个变量在脚本目录中连接的位置,但是当我尝试以下操作时:
grep -lire "$DATA_PATH . $AWARDS_YEAR" *
我收到“未定义的变量”错误...
我想我可以通过使用以下方法来逃避 $s:
grep -lire "\$DATA_PATH . \$AWARDS_YEAR" *
但是我得到了同样的错误——那么,你如何用 $s 来查找字符串?
Tcsh 在变量方面与通常的 shell 略有不同,它是 FreeBSD 上的默认设置。
因此,只需使用单引号 ,'$VAR'
或转义$
引号之外的内容:\$"VAR"
将其放在单引号中,并带有转义斜杠:
grep -lire '\$DATA_PATH . \$AWARDS_YEAR' *
另请注意,点 (.) 是一个正则表达式字符。如果您不希望它成为,也将其转义(或不使用 -e 选项)。
这是一个很好的参考,包含更一般的信息。