I need to get the version of Python installed and store it in a variable for later use. Whereas it is printing on the console instead of storing to variable. I am able to store output of ls command in a variable. Please check the below code :
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 "\****"
Please check the output of the code :
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
\****
Seems like that value gets sent to stderr for some reason, as in this question.
I find that the following seems to work:
python_version=$(python --version 2>&1)
echo "\****"
echo $python_version
echo "\****"
gives
\****
Python 2.7.3
\****
The value of python_version
is set locally when the script is run. It has no impact on the invoking shell. If you want that variable to be set in the current shell, you can accomplish that using one of the following methods.
Run the following command in your current shell.
python_version=$(python --version 2>&1)
Create a file that contains the above line. Say that file is python_version.sh
. Then execute:
source python_vesion.sh
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With