Bash 反引号与括号

Bash 反引号与括号

我读到,命令替换的经典形式使用反引号,而 (...) 形式已取代反引号进行命令替换。然而,下面的代码产生了不同的输出。有什么区别?

#backticks.sh
#!/bin/bash
a=`echo Hello!`   # Assigns result of 'echo' command to 'a' ...
echo $a   # output: Hello!

#parenthesis.sh
#!/bin/bash
a=(echo Hello!)   # Assigns result of 'echo' command to 'a' ...
echo $a  # output: echo 

答案1

您在这里缺少的是$

bash 上有两种命令替换形式,反引号(如您所示例所示)和用 括起来$(command)

您应该使用的是:

#!/bin/bash

a=$(echo Hello!)

echo $a

相关内容