Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 无法将python--版本存储到shell变量_Bash_Shell - Fatal编程技术网

Bash 无法将python--版本存储到shell变量

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 "\****"

我需要安装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
\****

运行脚本时,
python\u version
的值在本地设置。它对调用shell没有影响。如果希望在当前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。