【问题标题】:Difference between $(command) and `command` in a script [duplicate]脚本中$(command)和`command`之间的区别[重复]
【发布时间】:2023-03-30 02:21:01
【问题描述】:

执行这样的命令有什么区别:

var=$(ls -alh /dir)

然后这样做:

var=`ls -alh /dir`

一种方法可以用于更多的解释器吗?

【问题讨论】:

  • @tarrsalah 谢谢,我搜索的不够彻底!

标签: linux shell unix


【解决方案1】:

他们都是command substitution

第 3.5.4 节 http://www.gnu.org/software/bash/manual/bashref.html

Bash 通过执行命令并替换 用命令的标准输出替换命令,任何 尾随换行被删除。嵌入的换行符不会被删除,但它们 可以在分词期间删除。命令替换 $(cat file) 可以替换为等效但更快的 $(

当使用旧式反引号形式的替换时,反斜杠 保留其字面意思,除非后面跟“$”、“`”或“\”。 前面没有反斜杠的第一个反引号会终止命令 替代。使用 $(command) 形式时,所有字符之间 括号构成命令;没有人受到特殊对待。

命令替换可以嵌套。使用反引号时嵌套 表格,用反斜杠转义内部反引号。

如果替换出现在双引号内,分词和 结果不进行文件名扩展。

【讨论】:

    猜你喜欢
    • 2012-12-18
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 2018-09-25
    相关资源
    最近更新 更多