检查是否通过脚本安装了pip

时间:2018-10-04 20:25:27

标签: python shell pip

所以这可能是一种愚蠢的方法,但是我想检查是否通过脚本安装了pip,所以我运行了pip version命令,并检查命令的前3个字符是否为“ pip”,以及所以我可以说我知道安装了pip。问题是当我运行此命令并收到command not found错误时,逻辑仍然认为pip已安装。为什么是?返回的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

1 个答案:

答案 0 :(得分:1)

您正在测试字符串pip是否等于字符串pip。不涉及pip变量。

与Python不同,pip"pip"在Shell脚本中是等效的。 "pip" suppress special interpretation of a number of characters中的引号,实际上pip中都没有引号。您需要$pip来执行变量扩展。

即使那样,硬编码/root/.local/bin/pip也没有多大意义,与测试可执行文件是否在该路径上相比,通过硬编码路径执行pip以确定其是否存在似乎是一个奇怪的主意。完全不同的方法。

您可能应该使用command -v pip代替当前的方法。