Scripting 在csh中使用双引号时,重复字符不适用于grep

Scripting 在csh中使用双引号时,重复字符不适用于grep,scripting,csh,Scripting,Csh,我之前已经发布了一个关于这个问题的问题,但现在我理解了这个问题,因此想重新发布。在csh脚本中,当不使用双引号时,*字符的解释是正确的,但当我使用双引号时,*字符的解释是错误的。有人知道如何让csh正确解释*字符吗。下面是我的代码: #!/bin/csh #set ans=`grep -E hello\*i ~/wildcard/helloi.txt` set ans=`grep -E "hello\*i" ~/wildcard/helloi.txt` echo $ans 注释集ans工作

我之前已经发布了一个关于这个问题的问题,但现在我理解了这个问题,因此想重新发布。在csh脚本中,当不使用双引号时,*字符的解释是正确的,但当我使用双引号时,*字符的解释是错误的。有人知道如何让csh正确解释*字符吗。下面是我的代码:

#!/bin/csh
#set ans=`grep  -E hello\*i ~/wildcard/helloi.txt`
set ans=`grep  -E "hello\*i" ~/wildcard/helloi.txt`
echo $ans
注释集ans工作正常,但未注释集ans工作不正常。输入文件包含以下内容:

helloiif
helli
helloi
所有3个都应打印。

选项1(带有引号,退出
*

选项2(没有引号,必须退出
*

在双引号内,csh总是扩展它知道的内容,例如
*
$

grep -E "hello*i" ~/wildcard/helloi.txt
grep -E hello\*i ~/wildcard/helloi.txt