Необязательный аргумент с опцией getopts

while getopts "hd:R:" arg; do
  case $arg in
    h)
      echo "usgae" 
      ;;
    d)
      dir=$OPTARG
      ;;
    R)
      if [[ $OPTARG =~ ^[0-9]+$ ]];then
        level=$OPTARG
      else
        level=1
      fi
      ;;
    \?)
      echo "WRONG" >&2
      ;;
  esac
done

level refers to parameter of -R, dir refers to parameters of -d

when I input ./count.sh -R 1 -d test/ it works rightly

when I input ./count.sh -d test/ -R 1 it works rightly

but I want to make it work when I input ./count.sh -d test/ -R or ./count.sh -R -d test/

Это значит что я хочу-R имеет значение по умолчанию, и последовательность команд может быть более гибкой.

Ответы на вопрос(9)

Ваш ответ на вопрос