我想检查当前版本的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
命令出了什么问题?我们该如何解决?
答案 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