【发布时间】:2020-03-09 13:47:30
【问题描述】:
我想在一个参数中做一个参数解析器。
这是我的启动器./bin/kube/launch_market_quality_job.sh -e staging -j job_example
这里是我的脚本。
while [ ${#} -ne 0 ]; do
case "${1}" in
--environment | -e)
shift;
export ONE_ENVIRON=${1};
case $ONE_ENVIRON in
staging)
export REPOSITORY=<DTR>
;;
production)
export REPOSITORY=<DTR>
;;
*)
fail "You must provide the environment [staging|production]"
;;
esac
;;
--job | -j )
shift;
export JOB=${1}
case $JOB in
job_example_extra_args)
case "${1}" in
--name | -n )
export $NAME=${1}
[... extra args]
;;
*)
help
exit
;;
esac
shift
done
我想要做的是取决于“--j | -job”选项,是解析另外两个选项,具体取决于作业是一个还是另一个。
例如,一个普通的作业,称为“job_example”,使用之前的启动器可以正常工作。
但如果我的工作是“job_example_extra_args”,我需要一个名为“name”的新参数。
`./bin/kube/launch_market_quality_job.sh -e staging -j job_example_extra_args --name "Jesus"`
我不知道正确的方法是什么,如果调用了这个'job_example_extra_args',我想正确获取标志,如果不包含它,脚本应该失败或停止。 我想在 --job 标志中添加标志选项,以便在我想要的工作时激活它。
【问题讨论】:
-
你知道getopts吗?这对你有帮助吗? stackoverflow.com/questions/16483119/…