使用参数从bash脚本顺序调用多个python脚本

时间:2018-10-16 21:47:57

标签: python bash

我想制作一个bash脚本,该脚本根据终端中给出的参数连续运行一定数量的python脚本(它们的运行顺序无关紧要)。

类似的东西:

<?php

但是可以选择接受任意数量的关键字,只要它们与脚本匹配即可。

这将如何完成?

2 个答案:

答案 0 :(得分:1)

您可以做很多事情,但这是您要的最简单的内容:

#!/bin/bash
for script in $*; do
    python $script.py
done

将其放入新文件中,例如“ run_python.bash”,并使其可执行(chmod a+w run_python.bash)。

然后通过以下方式运行它:run_python.bash one two three,它将先执行one.py,然后执行two.py,再执行three.py。

如果您想在if循环中使用for结构(即,如果您的关键字与脚本名称不匹配),则简单版本如下所示:

#!/bin/bash
for script in $*; do
    if [ $script == 'kwarg1' ]; then
        python script1.py
    fi
    if [ $script == 'kwarg2' ]; then
        python name2000.py
    fi
    if [ $script == 'kwarg3' ]; then
        python program30.py
    fi
done

这将根据您在命令行中输入的关键字顺序执行告诉您的内容。

p.s。这与python无关。无论您是调用python还是ls或其他可以在bash中运行的脚本,该脚本的工作原理都相同。

答案 1 :(得分:0)

您需要shell脚本。

script.sh:

char

chmod + x script.sh

./ script.sh kwarg1