【问题标题】:What's the difference between -> result=$(ls -l) (or) -> result=`ls -l`-> result=$(ls -l) (or) -> result=`ls -l` 有什么区别
【发布时间】:2010-02-07 04:11:29
【问题描述】:

我运行了这两个命令,它们似乎都在做同样的事情,这是真的还是发生了什么我没有看到的事情?

这两个似乎做同样的事情:

result=$(ls -l)   
result=`ls -l`

【问题讨论】:

    标签: linux bash variables


    【解决方案1】:

    【讨论】:

    • 嗯,好吧,看来我明智地使用 t=$(ls -l) 谢谢大家!
    • 很好的链接,但是当我说 $() 是一种新语法时,我质疑他们对“新”的定义。它比反引号更新,但它已经存在了很长时间
    【解决方案2】:

    bash 手册页在 Command Substitution 下说明了以下内容。

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

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

    sh 手册页的在线副本:

    【讨论】:

      猜你喜欢
      • 2015-02-05
      • 1970-01-01
      • 2013-07-04
      • 2017-07-26
      • 2011-01-30
      • 2018-05-16
      • 1970-01-01
      • 1970-01-01
      • 2010-11-12
      相关资源
      最近更新 更多