如何从.sh shell脚本中读取-argument

时间:2014-05-15 19:39:13

标签: bash sh

我用以下参数调用bash脚本:

myscript.sh -d /tmp -e dev -id 12345 -payload /tmp/test.payload

并在脚本内部,希望获得-payload的值。我并不真正关心其他论点,但他们会出现在电话会议中。

这里有一些代码几乎可以用来检索参数:

while getopts "d:e:payload:id:" arg; do
  case $arg in
    payload)
        echo "payload"
        ;;
  esac
done

当然有效负载)在案例控制结构中不起作用,那么如何获取-payload的值并将其分配给变量?

1 个答案:

答案 0 :(得分:2)

我不确定这是否是处理它的最佳方式......但请检查these marked lines in a script

在你的情况下,我使用

while test $# -gt 0; do
  case "$1" in
    -payload)
      shift
      PAYLOAD=$1
      ;;
     *)
     # Catch other parameters here
     # this part is not relevant 
     # to the answer but I added it
     # to avoid infinite loop mentioned
     shift
     ;;
  esac
done