用于grep的python版本返回代码1

时间:2016-10-11 15:18:59

标签: python linux bash shell

我想检查当前版本的python是我在bash脚本中所期望的版本。

python --version | grep --quiet 'Python 2.7.12 :: Continuum Analytics'
if [ $? == 0 ]; then
    echo "python version ok"
fi

但是grep命令总是返回1,而不是0,即使我得到一个好的匹配,即使是一个简单的grep 'Python'。要进行检查,echo "${PIPESTATUS[1]}"会返回1

如果我将其他输出传递给grep,它会按预期工作,例如:

echo 'Python 2.7.12 :: Continuum Analytics' | grep --quiet 'Python 2.7.12 :: Continuum Analytics'

此操作正常,echo "${PIPESTATUS[1]}"返回0

使用管道传输给grep的python --version命令出了什么问题?我们该如何解决?

1 个答案:

答案 0 :(得分:-1)

尝试使用grep' -c, --count选项;

count=$(python --version 2>&1 | grep -c 'Python 2.7.12 :: Continuum Analytics')
if [ $count == 1 ]; then
    echo "python version ok"
fi