Bash可选参数和设置为默认值

时间:2013-12-05 10:01:50

标签: bash

我有一个bash上传脚本,看起来像这样 -

if [ $# -lt 2 ] 
then
   echo usage: $0 /path/to/mvn /path/to/libs [procs] [groupId]
fi

MVN_EXE=$1
LIB_DIR=$2
PROCS=10
GROUPID=$4:-'default'

if [ $# -gt 2 ] 
then
  PROCS=$3
fi

我希望GROUPID成为第4个arg或自动设置为'default'。我可以告知正确的语法吗?到目前为止谷歌搜索给了我这个。 那么我是否需要添加一个额外的搜索 -

if [$# -gt 3]
then
PROCS=$3
GROUPID=$4
fi

或者只是用新版本替换原来的if语句?

由于

2 个答案:

答案 0 :(得分:4)

你刚忘了花括号。您也可以使用它们来避免最终的if语句:

if [ $# -lt 2 ] 
then
   echo usage: $0 /path/to/mvn /path/to/libs [procs] [groupId]
fi

MVN_EXE=$1
LIB_DIR=$2
PROCS=${3:-10}
GROUPID=${4:-'default'}

答案 1 :(得分:0)

正确的语法是:

GROUPID=${4:-'default'}