繁体   English   中英

Bash 多个命令行参数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM