检查 bash 中是否缺少标志

Checking for lack of flags in bash

如果我做这样的事情来处理 bash 中的参数,我将如何检查是否没有参数?它似乎没有涉及 *) 案例,但我仍然想在某处放置一个用法声明。

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

在 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