Чтобы проверить, установлен ли ЛЮБОЙ Python (учитывая, что он находится в PATH), это просто:
if which python > /dev/null 2>&1;
then
#Python is installed
else
#Python is not installed
fi
Часть > /dev/null 2>&1
предназначена только для подавления вывода.
Чтобы получить номера версий также:
if which python > /dev/null 2>&1;
then
#Python is installed
python_version=`python --version 2>&1 | awk '{print $2}'`
echo "Python version $python_version is installed."
else
#Python is not installed
echo "No Python executable is found."
fi
Пример вывода с установленным Python 3.5: «Python версии 3.5.0 установлен.»
Примечание 1. Часть awk '{print $2}'
не будет работать правильно, если Python не установлен, поэтому либо используйте внутри проверки, как в примере выше, либо используйте grep
, как предложено Sohrab T . Хотя grep -P
использует синтаксис регулярного выражения Perl и может иметь некоторые проблемы с переносимостью.
Примечание 2: python --version
или python -V
могут не работать с версиями Python до 2.5. В этом случае используйте python -c ...
, как предлагается в других ответах.