shell scripting checking python version
Good question. For me it's working fine. You always should quote evaluated variables ("$X"
instead of $X
); maybe that fixes your error.
But I propose to use the result of the python script instead of its output:
#!/bin/bashif python -c 'import sys; sys.exit(1 if sys.hexversion<0x03000000 else 0)'then echo "Fine!"fi
If you like to stay in the shell completely, you also can use the --version
option:
case "$(python --version 2>&1)" in *" 3."*) echo "Fine!" ;; *) echo "Wrong Python version!" ;;esac
Maybe that's more readable.
The reason why it doesn't work is because the result stored in $PYTHON_VERSION is not an integer, so your equality test is being done with two different types.
You can change the if to:
if [ $PYTHON_VERSION -eq "0" ]; then echo "fine!"fi
or you can just do:
if [ $PYTHON_VERSION = 0 ]; then