Answers:
在这种情况下,实际上并不重要,但是单引号和双引号之间是有区别的。
双引号将替换特殊字符(例如'$'和引号),而单引号将按字面意义处理所有内容,但右引号除外。
两者都会将文本分组在一起,这使得铬将其视为一个自变量,而像“;#&”这样的字符在该上下文中没有特殊含义。
这显示了使用'\'来在双引号中转义双引号,以及反斜杠本身:
mat@sen:~$ echo "a&bc\\#de\"f"
a&bc\#de"f
用单引号没有改变:
mat@sen:~$ echo 'a&bc\\#de\"f'
a&bc\\#de\"f
不带引号的'&'将其分为两个命令:
mat@sen:~$ echo a&bc\\#de\"f
[1] 2619
a
bc\#de"f: command not found
[1]+ Done echo a
[1]+ Done echo a
通常,在处理一种报价时,您可以将其包装在另一种报价中,但是您可能会遇到以下问题:
mat@sen:~$ echo "'a'bc$foo"
'a'bc
单引号不会被替换,但是“ $”会被替换。但是,以下语法适用:
mat@sen:~$ echo $'a\'bc$foo'
a'bc$foo