首页 > 解决方案 > 如何将变量设置为 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

解决方案


问题是 bash 运行这两个命令,捕获它们的输出,然后将其替换为产生TESTVAR=1 2. 这将 1 分配给 TESTVAR 并尝试运行 2。显然,我的 PATH 上没有名为“2”的可执行文件。

使用引号的第二次尝试接近了,但引号不属于单个替代项。你需要一对:

TESTVAR="$(echo 1) $(echo 2)"

推荐阅读