Scripting 在csh中使用双引号时,重复字符不适用于grep
我之前已经发布了一个关于这个问题的问题,但现在我理解了这个问题,因此想重新发布。在csh脚本中,当不使用双引号时,*字符的解释是正确的,但当我使用双引号时,*字符的解释是错误的。有人知道如何让csh正确解释*字符吗。下面是我的代码: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工作
#!/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