比较bash

时间:2015-05-15 04:48:12

标签: python bash

我正在创建一个安装脚本,我想将安装的默认Python的版本与我需要运行的版本进行比较。目前这是我的代码:

#!/bin/bash
PYTHON="$(python -V)"
if [[ "$PYTHON = 'Python 2.7.6' ]]
then echo "Python is installed."
else echo "Python is not installed."
fi

我一直得到的响应是没有安装Python,但是当我输入命令python -V时,这就是输出。

非常感谢任何帮助。提前谢谢。

2 个答案:

答案 0 :(得分:2)

当您运行python -V时,它会将版本打印到 stderr ,而不是stdout。因此,将输出捕获到变量的尝试更改为:

PYTHON=$(python -V 2>&1)

应该做的伎俩。另一种替代方案,包括有关构建日期,编译器等的其他信息,将是:

python -c 'import sys; print sys.version'

或者,正如@chepner所建议的那样:

python -c 'import sys; print sys.version_info'

但是,这些都需要一些额外的解析来获取您想要/需要的特定信息。

答案 1 :(得分:0)

您可以像这样更改代码:

#!/bin/bash
PYTHON="$(python -V 2>&1)"
if [[ "$PYTHON" = "Python 2.7.6" ]]; then
    echo "Python is installed."
else
    echo "Python is not installed."
fi