Как закодировать вывод другого скрипта как условие в каком-то другом скрипте - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть скрипт Python, который получает входные данные от аргументов.Могу ли я разместить это как условие в условии if скрипта bash?Если скрипт Python заканчивается ошибкой (выход 1), он должен запустить другой скрипт Python, а если скрипт Python заканчивается 0, никаких действий не требуется.Я думал сделать это через условие if в скрипте bash.Я ошибаюсь в коде.

#!/bin/bash

if [ "python pythonscript.py argument" == 1 ]; then
 python pythonscript2.py argument
fi

exit 0

Одинаковый аргумент передается обоим сценариям Python.Аргумент - это строка, похожая на нечтоЯ не получаю ничего, когда выполняю выше, без синтаксической ошибки, в то же время ничего не происходит

#!/bin/bash

if [ "python pythonscript.py argument" == 1 ]; then
 python pythonscript2.py argument
fi

exit 0

Если скрипт Python заканчивается ошибкой (код выхода 1), я хочу, чтобы другой код Python выполнялся с аргументом else exitо

1 Ответ

1 голос
/ 15 апреля 2019

Хватит думать о [ как о операторе.Это просто команда.Но в этом случае вы не хотите его использовать;вы просто хотите вызвать ваш скрипт на python:

if python pythonscript.py argument; then
    echo executed when python return 0
else
    echo executed when python returns non-zero
fi

Для вашего конкретного случая вы просто хотите:

if ! python pythonscript.py argument; then
    python pythonscript2.py argument
fi

Это различает только выход с нулевым или ненулевым значением, ине проверяет конкретное ненулевое значение.Если вы хотите сделать что-то другое при выходе из скрипта с 2, чем при выходе с 1, вы можете проверить значение $?, но лучше не делать этого.

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