检查bash中是否缺少标志

时间:2015-03-10 19:09:53

标签: bash scripting sh getopts

如果我要做这样的事情来处理bash中的参数,我该如何检查是否没有参数?它似乎没有转到*)的情况,但我仍然想在某处使用一个用法声明。

while getopts 'ias' flag; do
  case "${flag}" in
    i) ifl='true' ;;
    m) afl='true' ;;
    n) sfl='true' ;;
    *) error "Invalid option ${flag}" ;;
  esac
done

1 个答案:

答案 0 :(得分:2)

在while循环之前,执行此操作

if (( $# == 0 )); then
    echo "you must specify one of -i or -a or -s"
    exit 1
fi

或者,在while循环之后,你可以这样做

if [[ $ifl != true && $afl != true && $sfl != true ]]; then
    echo "you must specify one of -i or -a or -s"
    exit 1
fi