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

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

要将命令的输出存储为sh/ksh/bash中的变量,可以执行以下操作

var=$(command)

var=`command`

这两种方法有什么区别?


繁星淼淼
浏览 1215回答 3
3回答

红糖糍粑

后排[地心引力]已不再受欢迎$()用于命令替换,因为$()可以很容易地在自己内筑巢,就像在$(echo foo$(echo bar))..还有其他的区别,比如反斜杠是如何在反勾/凹坑版本中被解析的,等等。看见BashFAQ/082有几个理由总是倾向于$(.)语法。也请参阅POSIX有关各种差异的详细信息的规范。

万千封印

他们的行为是一样的。不同之处在于句法:更容易嵌套$()比``:listing=$(ls -l $(cat filenames.txt))v.V.listing=`ls -l \`cat filenames.txt\``

回首忆惘然

当使用旧的反勾形时,反斜杠保留其字面意义,除非后面跟着$、`或\。没有反斜杠的第一个反勾号终止命令替换。当使用更新的$(command)窗体中,括号之间的所有字符构成命令;没有任何字符得到特殊处理。这两种表单都可以嵌套,但是反勾类型需要以下表单。`echo \`foo\``相对于:$(echo $(foo))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python