Shell 如何使一些脚本参数成为强制性的

Shell how to make some of the script arguments mandatory

我想要 运行 一个接受 3 个命令行选项的脚本 -o|q|i。我想让 qo 但不是 i 所以 运行 命令 看起来像:

script.sh -q <some-text> -o <some-other-text>

下面的代码使其中的 none 成为强制性的。我怎样才能做到这一点?

 for arg in "$@"
    do
        case $arg in
            -q) req=""
            shift  shift ;;
            -o) out=""
            shift  shift ;;
            -i|) ind=""
            shift  shift ;;
        esac
    done

我通过使用以下代码检查变量 reqout 在 for 循环后是否具有某些值来完成这项工作:

  if [[ -z $out  ||  -z $req ]]
  then
    echo "ERROR: -q  and -o are mandatory arguments. See usage: \n";
    exit 1;
  fi