循环遍历目录并按特定顺序在包上运行easy_install

时间:2016-06-15 21:28:53

标签: python bash jenkins

我对bash脚本很新。

我有一个必须脱机运行的bash脚本(应该在没有互联网的情况下运行)。该脚本解析xyz.tar.gz文件并在一堆python包上执行easy_install,这些包是.tar.gz文件本身。我正在安装的4个包是:

multi_key_dict-2.0.3.tar.gz
pbr-1.10.0.tar.gz
python-jenkins-0.4.12.tar.gz
six-1.10.0.tar.gz

问题是,six-1.10.0.tar.gz是python-jenkins包的依赖项。当我运行脚本时,它会尝试按字母顺序安装这些软件包;因此试图在六点之前安装python-jenkins。由于没有互联网来获得依赖包,它失败了。 (请注意,我要求我使用easy_install over pip,主机应该脱机工作)

如何以安装python-jenkins之前安装其余3个软件包的方式编写脚本?我不想手动编写4行来安装每个包。

1 个答案:

答案 0 :(得分:0)

这样的事可能有用:

for package in m* pb* s* py*; do
    easy_install "$package"
done

以上假设您所在的目录中包含这四个文件,而easy_install需要一个文件名作为第一个且唯一的参数。

基本上,变量package将按此顺序分配:

multy_key_dict-2.0.3.tar.gz
pbr-1.10.0.tar.gz
six-1.10.0.tar.gz
python-jenkins-0.4.12.tar.gz

我希望你明白这个for循环。