为了账号安全,请及时绑定邮箱和手机立即绑定

在shell编程中,$(命令)和‘Command’之间有什么区别?

在shell编程中,$(命令)和‘Command’之间有什么区别?

繁星淼淼 2019-06-19 17:35:31
在shell编程中,$(命令)和‘Command’之间有什么区别?要将命令的输出存储为sh/ksh/bash中的变量,可以执行以下操作var=$(command)或var=`command`这两种方法有什么区别?
查看完整描述

3 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

后排[地心引力]已不再受欢迎$()用于命令替换,因为$()可以很容易地在自己内筑巢,就像在$(echo foo$(echo bar))..还有其他的区别,比如反斜杠是如何在反勾/凹坑版本中被解析的,等等。

看见BashFAQ/082有几个理由总是倾向于$(.)语法。

也请参阅POSIX有关各种差异的详细信息的规范。


查看完整回答
反对 回复 2019-06-19
?
万千封印

TA贡献1891条经验 获得超3个赞

他们的行为是一样的。不同之处在于句法:更容易嵌套$()``:

listing=$(ls -l $(cat filenames.txt))

v.V.

listing=`ls -l \`cat filenames.txt\``


查看完整回答
反对 回复 2019-06-19
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

当使用旧的反勾形时,反斜杠保留其字面意义,除非后面跟着$、`或\。没有反斜杠的第一个反勾号终止命令替换。

当使用更新的$(command)窗体中,括号之间的所有字符构成命令;没有任何字符得到特殊处理。

这两种表单都可以嵌套,但是反勾类型需要以下表单。

`echo \`foo\``

相对于:

$(echo $(foo))


查看完整回答
反对 回复 2019-06-19
  • 3 回答
  • 0 关注
  • 1214 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信