bash 中的 ` 和 ' 有什么区别?

bash 中的 ` 和 ' 有什么区别?

今天我注意到如果我跑步:

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
何时需要双引号

相关内容