shell脚本中getopts中的2个必需参数

时间:2018-01-29 10:53:46

标签: bash shell

执行需要2个必需参数-d-v的shell脚本 和1个可选参数-h无法正常工作

执行脚本store.sh,如下所示

store.sh -d <directory> -v<version>

我在下面尝试了这个,但它不起作用,脚本运行时只有一个参数,即-d没有-v

while getopts "hd:v:" arg; do
  case "$arg" in
    h) usage 0;;
    d) DIRECTORY="$optarg"  ;;
    v) VERSION="$optarg" ;;
    *) usage 1;;
  esac
done  

1 个答案:

答案 0 :(得分:1)

启动脚本并将DIRECTORY和VERSION设置为空字符串(最好为它们使用小写,directoryversion)。
在while循环之后检查变量:

test -z "${directory}" && usage 1
test -z "${version}" && usage 1

如果要支持空目录/版本,请引入额外的var option_d_given