Вызовите несколько сценариев Python последовательно из сценария Bash, используя аргументы

1

Я хотел бы создать скрипт bash, который запускает некоторое количество скриптов python в строке на основе аргументов, заданных в терминале (порядок, в котором они выполняются, не имеет значения).

Что-то вроде:

kwargs = kwarg1 kwarg2 kwarg3

if kwarg1: python script1.py
if kwarg2: python name2000.py
if kwarg3: python program30.py

Но с возможностью принимать любое количество ключевых слов до тех пор, пока они соответствуют сценарию.

Как это будет сделано?

Теги:

2 ответа

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

Это выполнит все, что вы скажете, на основе порядка ключевых слов, которые вы вводите в командной строке.

ps Это не имеет ничего общего с python. Сценарий работает одинаково, ссылаетесь ли вы на python, или ls, или на что-нибудь еще, что вы можете запустить в bash.

0

вам нужен сценарий оболочки.

script.sh:

#!/bin/bash

if [ "$1" == "kwarg1" ]
then
    python script1.py
elif [ "$1" == "kwarg2" ]
then
    python name2000.py
fi

chmod +x script.sh

./script.sh kwarg1

Ещё вопросы

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