i'm trying to do shell command then save the output into variable using shell script. So i use backticks like this :
out=`ls -l`
print $out
that code is working fine,and i can use it for any other shell command, but when i try to do 'python --version' to check python version. i got weird problem. The backtick is not working for "python --version" command while it's working fine with any other commands, it prints the output to the screen and save nothing to the variable $out. so if i do :
out =`python --version`
print "my python version is "$out
result:
Python 2.6.1
my python version is
also i tried to use $() to replace backtick , but no luck. Any idea ?
You have a space before your equals sign:
out =`python --version`
Should be:
out=`python --version`
Update
Also python outputs the version string to stderr, so you need to redirect it to stdout:
out=`python --version 2>&1`
来源:https://stackoverflow.com/questions/10487379/shell-script-can-not-save-output-from-command-line-into-variable