【发布时间】:2014-09-28 20:07:30
【问题描述】:
我惊讶地发现单引号版本与正则表达式同样适用。 我现在看到的唯一真正的区别是双引号会扩展正则表达式模式中的变量。我还有什么遗漏的吗?
【问题讨论】:
我惊讶地发现单引号版本与正则表达式同样适用。 我现在看到的唯一真正的区别是双引号会扩展正则表达式模式中的变量。我还有什么遗漏的吗?
【问题讨论】:
单引号和双引号的区别是shell问题,不是grep问题。在将参数传递给grep 之前,决定执行或不执行变量扩展的是shell。因为 shell 处理参数的最后一步是删除引号,grep 甚至看不到引号。
变量扩展并不是单引号和双引号的唯一区别。 shell 还在双引号内进行命令替换和算术扩展。例如:
$ echo "$(date) and 2+2=$((2+2))"
Tue Aug 5 18:52:39 PDT 2014 and 2+2=4
$ echo '$(date) and 2+2=$((2+2))'
$(date) and 2+2=$((2+2))
【讨论】: