无法将python——version存储到shell变量中



我需要安装Python的版本并将其存储在一个变量中以供以后使用。然而,它是在控制台上打印,而不是存储到变量。我可以将ls命令的输出存储在一个变量中。请检查以下代码:

root@myhost:/volumes/srini# cat python_version.sh
python_version=`python --version`
echo "****"
echo $python_verison
echo "****"
ls_output=`ls -l python*`
echo "****"
echo $ls_output
echo "****"

请检查代码输出:

root@myhost:/volumes/srini# ./python_version.sh

Python 2.6.8
****
****
****
-rwxr-xr-x 1 root root 147 May 26 09:35 python_version.sh
****

似乎这个值由于某种原因被发送到stderr,就像这个问题一样。

我发现下面的方法似乎有效:

python_version=$(python --version 2>&1)
echo "****"
echo $python_version
echo "****"

****
Python 2.7.3
****

python_version的值是脚本运行时本地设置的。它对调用shell没有影响。如果您希望在当前shell中设置该变量,可以使用以下方法之一来实现:

  1. 在当前shell中运行以下命令:

    python_version=$(python --version 2>&1)
    
  2. 创建包含上述行的文件。假设该文件是python_version.sh。然后执行:

    source python_vesion.sh
    

最新更新