我之前已经发布了一个问题,但现在我理解了这个问题,因此想重新发布。如果没有放在双引号中,*字符在我的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工作正常,但未注释的集合没有。输入文件包含以下内容:
helloiif
helli
helloi
应该打印所有3个。
答案 0 :(得分:0)
选项1 (带引号,不转义*
)
grep -E "hello*i" ~/wildcard/helloi.txt
选项2 (不带引号,必须转义*
)
grep -E hello\*i ~/wildcard/helloi.txt
在双引号内,csh 始终扩展它知道的内容,例如*
,$
等。