Проверка установки pip через скрипт

1

Так что это, возможно, был глупым способом сделать это, но я хотел проверить, был ли pip установлен через скрипт, поэтому я запустил команду версии pip и проверил, были ли первые три символа команды "pip", и если бы я мог Я знал, что пип был установлен. Проблема в том, что когда я запускаю это и получаю command not found ошибку, логика все еще думает, что пипс установлен. Почему? Что это за command not found ошибка? Это не может быть правильно, так почему пип не устанавливается? И какой лучший способ определить, установлен ли pip?

pip=$(sudo /root/.local/bin/pip -V | cut -c 1-3)
if [[ pip != "pip" ]]; then
    echo "Installing pip..."
    curl https://bootstrap.pypa.io/get-pip.py -o /tmp/get-pip.py
    sudo /workplace/user/package/src/EnvImprovement/bin/python2.7 get-pip.py --user
else
    echo "Pip detected."
fi
  • 0
    В этой строке [[pip! = "Pip"]] могу ли я узнать, почему в другом списке есть список? Это вызывает проблему?
  • 0
    @RajeshKumar Это синтаксис, который я видел, когда искал условия сценария оболочки. Я могу отредактировать его и посмотреть, если это вызывает проблемы, хотя. Я не верю, что это так.
Показать ещё 1 комментарий
Теги:
pip

1 ответ

1
Лучший ответ

Вы проверяете ли строка pip равен строкой pip, который это. Переменная pip не задействована.

В отличие от Python, pip и "pip" эквивалентны в сценарии оболочки. Кавычки в "pip" подавляют специальную интерпретацию ряда символов, ни одна из которых фактически не присутствует в pip. Вам нужно $pip для выполнения расширения переменной.

Даже тогда /root/.local/bin/pip не имеет особого смысла, и выполнение pip жестко запрограммированным путем для определения того, существует ли это, кажется странной идеей по сравнению с проверкой того, существует ли исполняемый файл на этом пути или выполняется совсем другой подход.

Вероятно, вы должны использовать command -v pip вместо текущего подхода.

  • 0
    Ничего себе, я оставил $, я не могу в это поверить. Благодарю.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню