通过管道传输到grep的python版本返回代码1

2024-09-28 03:22:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我想检查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,它将按预期工作,例如:

^{pr2}$

这可以正常工作,echo "${PIPESTATUS[1]}"返回0

传递到grep的python --version命令出了什么问题?我们怎样才能修好它?在


Tags: 命令echo版本脚本bashifversionok
1条回答
网友
1楼 · 发布于 2024-09-28 03:22:11

尝试使用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

相关问题 更多 >

    热门问题