在 csh 中保存 grep 输出

Saving grep output in csh

您好,我刚开始编写一些 csh 脚本,但在将 grep 结果存储到变量时遇到了问题。我正在尝试从包含用户名作为子字符串的文件中保存一行。

echo `grep -w $name /etc/passwd`
set line=`grep -w $name /etc/passwd`
echo $line

第一行只是调试行,所以我知道我的 grep 得到了正确的行。它的第二行给我带来了问题。当我回显它时,它会打印 "echo: no match"。有人可以提供帮助吗?

您的密码文件包含 *。在脚本中添加双引号:

set line="`grep -w $name /etc/passwd`"
echo "$line"

如果没有引号,* 会被解释为通配符文件匹配字符,[可能] 不会匹配任何真实文件。