脚本shell:在之前传递的几个参数之后获取可变数量的参数

时间:2017-05-05 01:40:45

标签: python bash shell

Hye,我正在尝试创建一个cli命令,它会将参数传递给python脚本。

例如,我的python脚本将根据给定的参数

执行
./run.py <START-DATE> <END-DATE> -site <SITE-ID>(ranging from 1 to n)

这里的问题是,如何将变量从bash脚本传递给我的python脚本?

我所研究的是,如果我们不知道将会传递多少纪录,我可以使用变量$ 1,$ 2,$ 3等和$ @来获取参数。

这里的问题是,

我的<START-DATE> <END-DATE>-site仅固定为1个变量,分别为1美元,2美元和3美元,那么我怎样才能使用$ @但只能在$ 3之后?

我的代码test.sh现在:

#!/usr/bin/bash

if [ $1 -ne "" ] && [ $2 -ne "" ] && [ $3 -ne "" ] && [ $4 -ne "" ]; //minimum 1 argument for site// then
    /usr/bin/python2.6 run.py $1 $2 $3
else
    echo "Please insert the correct number of arguments"

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用$#查找传递给bash脚本的参数数量。如果一切顺利,请使用$@将所有参数传递给Python脚本。类似的东西:

# At least 4 arguments should be passed
if [ $# -gt 3 ]
then
    /usr/bin/python2.6 run.py $@
else
    echo "Please insert the correct number of arguments"
fi