[英]Bash multiple command line arguments
我希望能够使用一个或多个参数运行我的脚本,并对传递的所有参数执行操作。
到目前为止,我已经能够基于第一个参数运行命令,如下所示:
#/bin/bash
ap=admin
lp=lender
if [[ "$1" = "ap" ]]; then
echo "### pulling $ap ###"
elif [[ "$1" = "lp" ]]; then
echo "### pulling $lp ###"
else
echo "There is no service with that name"
fi
我希望能够使用多个参数运行我的脚本,如下所示,并运行每个给定参数所需的命令。 例如,如果我运行这个:
./update.sh ap lp
我希望能够同时检测 ap 和 lp,然后执行正确的命令。
总而言之,如果运行脚本的人将 'ap' 作为参数传递,我想拉取 admin,如果用户同时传递 'ap' 和 'lp' 作为参数,我想同时拉取 admin 和 lender。
在此先感谢您的帮助!
使用while
循环查看参数并使用shift
将参数 $N+1 移动到 $N。 所以在shift
,第二个参数变成了第一个。
while [ "$#" -gt 0 ]
do
if [[ $1 = "ap" ]]
then
echo "AP typed"
elif [[ $1 = "lp" ]]
then
echo "LP typed"
fi
shift
done
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
ap)
echo "### pulling $ap ###"
;;
lp)
echo "### pulling $lp ###"
;;
*)
echo "There is no service with that name"
;;
esac
shift
done
这将按照您放置它们的每个顺序接受参数
$ ./update lp ap
$ ./update ap lp
$ ./update lp
$ ./update ap
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.