如何在shell脚本中检查系统参数?

问题描述 投票:0回答:1

我想用shell脚本运行python脚本。为了运行python脚本,我发送了一个参数,所以我把这个参数传给shell脚本。所以我将该参数传入shell脚本。但是,如果参数没有被传递,那么应该说请插入参数,如果参数被传递,那么python脚本应该被启动。

例子:我尝试用这个shell脚本来运行一个参数。

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

我试着用这个shell脚本来运行这个过程。

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

fi

它总是运行在 else 部分。你能纠正我吗?

linux bash shell unix sh
1个回答
0
投票

你可以检查一下,如果字符串的长度包含在 $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"

0
投票

你不需要一个 if 在你的情况下。的情况下,你可以直接做一个(即

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

:? 如果参数缺失或为空,则输出错误信息,并以退出代码1中止脚本。

如果你只想测试参数的存在,但允许应用程序名称为空,只需省略了 :.

© www.soinside.com 2019 - 2024. All rights reserved.