我想用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 部分。你能纠正我吗?
你可以检查一下,如果字符串的长度包含在 $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"
你不需要一个 if
在你的情况下。的情况下,你可以直接做一个(即
python /medaff/Scripts/python/iMedical_Consumption_load_Procs.py "${1:?application_name missing}"
的 :?
如果参数缺失或为空,则输出错误信息,并以退出代码1中止脚本。
如果你只想测试参数的存在,但允许应用程序名称为空,只需省略了 :
.