我试图了解这些特殊情况下单引号和双引号的区别:
egrep '^Za(za)+!$' *
返回Zaza!
和Zazazazaza!
(这就是我想要的)
egrep "^Za(za)+!$" *
返回我上面提到的那些,还有Zaaazazaaaa!
,Zaza
,Zazaza!Zazaza!
,Za!
根据我的理解,双引号会考虑像+
这样的符号的含义,那么为什么双引号不起作用呢?
答案 0 :(得分:2)
!$
是history expansion,用于选择上一个命令中的最后一个单词(因此结果实际上取决于其他命令!)。处理inside double quotes but not inside single quotes。