我试图捕获bash命令的输出

时间:2017-10-31 21:50:59

标签: bash

我试图在变量PYVER中捕获bash命令PYVER="$(python --version)"的输出。出于某种原因,它似乎不起作用,因为当我使用echo "$PYVER"检查时,它不返回任何内容(空白行)。通过我的bash脚本(我是新手),我尝试以这种格式捕获其他输出并且它已经工作了。如果有人能找到我的错误,我将非常感激。

2 个答案:

答案 0 :(得分:3)

因为python将版本写入stderr,这应该可以工作:

PYVER=$(python --version 2>&1)
echo $PYVER

答案 1 :(得分:1)

我认为问题是python --version将它的输出发送到stder,而不是stdout。 下面的重定向似乎可以做你想要的。

$PYVER="$(python --version 2>&1 > /dev/null)"
$echo $PYVER
$Python 2.7.10