我正在创建一个安装脚本,我想将安装的默认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时,这就是输出。
非常感谢任何帮助。提前谢谢。
答案 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