在 shell 脚本中使用反引号或美元

Jus*_*tin 9 command-line

我正忙于编写 shell 脚本(使用 Bash),我需要从其他命令的返回结果中填充一些变量。

所以我使用这样的语法:

VAR=`command 2>/dev/null`
Run Code Online (Sandbox Code Playgroud)

但是在查找有关脚本外壳的信息时,我经常发现也可以使用以下语法来实现上述目的:

VAR=$(command 2>/dev/null)
Run Code Online (Sandbox Code Playgroud)

两者都为我工作(我在两种情况下都收到了预期的结果),因此我想知道我是否仍然可以互换使用两种形式,或者我是否必须坚持使用一种形式以确保符合未来的发展贝壳 ?

l0b*_*0b0 13

使用美元。反引号是半弃用的,因为它们使用起来更复杂(请参阅链接),除非您在进行代码高尔夫并且绝对需要保存单个字符,否则它们没有任何优势。不过,它们可能不会很快从流行的 shell 中删除,因此您现在可以安全地使用它们。