Проверка установки pip через скрипт - PullRequest
0 голосов
/ 04 октября 2018

Так что, возможно, это был глупый способ сделать это, но я хотел проверить, был ли pip установлен через скрипт, поэтому я выполнил команду pip version и проверил, были ли первые 3 символа команды «pip», и еслитак что я могу сказать, что знал, что пип был установлен.Проблема в том, что когда я запускаю это и получаю ошибку command not found, логика все еще думает, что pip установлен.Почему?Что это за ошибка command not found?Это не может быть pip правильно, так почему pip не устанавливается?И как лучше определить, установлен ли 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

1 Ответ

0 голосов
/ 04 октября 2018

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...