我希望能够使用一个或多个参数运行我的脚本,并对传递的所有参数执行操作。
到目前为止,我已经能够根据第一个参数运行命令,如下所示:
#/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'作为参数,我想拉管理员,如果用户同时通过'ap'和& 'lp'作为参数,我想拉管理员和贷方。
提前感谢您的帮助!
答案 0 :(得分:2)
使用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
答案 1 :(得分:0)
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