bash - 如何将变量设置为 Bash 中两个命令的输出
问题描述
我阅读了如何将变量设置为 Bash 中命令的输出?并尝试这样做两次:
TESTVAR=$(echo 1) $(echo 2)`
TESTVAR="$(echo 1)" "$(echo 2)"
TESTVAR=`echo 1` `echo 2`
所有三个选项都以-bash: 2: command not found
.
重击版本 4.3.30
解决方案
问题是 bash 运行这两个命令,捕获它们的输出,然后将其替换为产生TESTVAR=1 2
. 这将 1 分配给 TESTVAR 并尝试运行 2。显然,我的 PATH 上没有名为“2”的可执行文件。
使用引号的第二次尝试接近了,但引号不属于单个替代项。你需要一对:
TESTVAR="$(echo 1) $(echo 2)"