Как проверить системный аргумент в скрипте оболочки? - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь запустить сценарий python сценарием оболочки. Для запуска сценария python я отправляю один аргумент. Поэтому я передаю этот аргумент в сценарий оболочки. Но если аргумент не передан, тогда следует сказать: «Пожалуйста, введите аргумент, а если аргумент передается, то сценарий python должен быть запущен.

Пример:

python script - new.py
shell script - new.sh
system argument - 'EUREKA'
run_command - bash new.sh 'EUREKA'

Я пробую этот сценарий оболочки чтобы запустить процесс:

if ["$1"]
then 
    python /medaff/Scripts/python/iMedical_Consumption_load_Procs.py "$1"
else
    echo "Please insert application_name"

fi

Это всегда происходит в другой части. Не могли бы вы исправить меня?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Вам не нужно if в вашем случае. Вместо этого вы можете просто выполнить (то есть)

 python /medaff/Scripts/python/iMedical_Consumption_load_Procs.py "${1:?application_name missing}"

. :? выводит сообщение об ошибке, если параметр отсутствует или пуст, и прервать выполнение сценария с кодом выхода 1.

Если вы просто хотите проверить наличие параметра, но разрешить пустые имена приложений, просто опустите :.

0 голосов
/ 27 апреля 2020

Вы можете проверить, является ли длина строки, содержащейся в $1, ненулевой. Попробуйте:

if [ -n "$1" ]
then 
    python /medaff/Scripts/python/iMedical_Consumption_load_Procs.py "$1"
else
    echo "Please insert application_name"

fi

Или лучше:

appname="$1"
while [ -z "$appname" ] 
do 
    read -p "Please insert application_name: " appname
done

python /medaff/Scripts/python/iMedical_Consumption_load_Procs.py "$appname"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...