tcsh无法用方括号回显单词

时间:2014-02-11 00:38:33

标签: tcsh

我有一个数据列表

%cat data
a
b[1]
c[2]
d

我尝试使用以下命令回显每一行:

%foreach aa ( `cat data` )
foreach? echo $aa
foreach? end
a
echo: No match

有人可以解释一下echo cmd发生了什么以及如何修复它?谢谢。

1 个答案:

答案 0 :(得分:4)

当你这样做时

echo $aa

$aa包含b[1],shell在扩展变量值后会尝试处理[]元字符。由于您(可能)当前目录中没有任何内容与b[1]匹配,因此会出现错误。

您需要引用变量引用。取代

echo $aa

echo "$aa"

echo $aa:q

:q语法特定于csh和tcsh;双引号在大多数shell中的工作方式类似,包括csh派生的shell和sh派生的shell,如bash)。