不管我看起来如何做,我似乎无法得到命令的输出被分配给bash中的变量。虽然我的脚本运行发现没有任何错误,我没有得到我想要的结果:Bash - 获取命令的输出
# Prompt if the user needs Qt
echo ""
echo "Checking for qt5-default."
echo ""
OUTPUT="$(sudo dpkg -s qt5-default)"
echo "OUTPUT:"
echo $OUTPUT
...
OUTPUT
将永远回响什么。但是,如果我这样做:
OUTPUT="$(ls -la)"
然后,它的工作原理。我想知道为什么。
这里是我的意思是:
正如你所看到的,“输出:”字符串来命令输出后,这意味着输出没有被存储在变量,但是在主外壳中运行,这让我感到困惑。
下面是当OUTPUT="$(ls -la)"
会发生什么:
在这种情况下, “输出:” 来之前,显示出echo
命令工作正常。
任何想法?
听起来就像它使用标准错误而不是标准输出。在命令的末尾尝试'2>&1'。 – 2015-02-10 00:45:15