Bash 无法将python--版本存储到shell变量
我需要安装Python的版本,并将其存储在一个变量中供以后使用。而它是在控制台上打印,而不是存储到变量。我能够将ls命令的输出存储在变量中。请检查以下代码:Bash 无法将python--版本存储到shell变量,bash,shell,Bash,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 "\****"
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
\****
运行脚本时,
python\u version
的值在本地设置。它对调用shell没有影响。如果希望在当前shell中设置该变量,可以使用以下方法之一实现
python_version=$(python --version 2>&1)
python\u version.sh
。然后执行:
source python_vesion.sh
似乎该值出于某种原因被发送到stderr,如中所示 我发现以下方法似乎有效:
python_version=$(python --version 2>&1)
echo "\****"
echo $python_version
echo "\****"
给予
\****
Python 2.7.3
\****
+这个答案是正确的
python
在stderr
上写入版本字符串。不仅仅是python,f.e.gpg——导入
也使用stderr。很混乱,当然会有影响。只是python--version
打印到stderr。