今天我注意到如果我跑步:
ldd `which bash`
我得到了预期的输出。但当我跑步时
ldd 'which bash'
我收到错误./which bash: No such file or directory.
那么这两个看起来相似的符号有什么区别呢?
答案1
` 被命名为反引号,评估命令。
反引号用于旧式命令替换,例如
foo=`command`
这
foo=$(command)
建议改为使用语法。内部的反斜杠处理$()
并不令人惊讶,并且$()
更容易嵌套。
看http://mywiki.wooledge.org/BashFAQ/082
单引号 ' 用于防止字符串的 shell 扩展:
学习如何在shell中正确引用,这非常重要:
“双引号”包含空格/元字符的每个文字以及每一个扩张:
"$var"
,"$(command "$var")"
,"${array[@]}"
,"a & b"
。用于'single quotes'
代码或文字$'s: 'Costs $5 US'
,ssh host 'echo "$HOSTNAME"'
.看
http://mywiki.wooledge.org/Quotes
http://mywiki.wooledge.org/Arguments
http://wiki.bash-hackers.org/syntax/words
何时需要双引号