0

これは私が取り組んでいるコードです:

TYPE=""
FILE=""

while getopts "t:f:" opt; do
    case $opt in
        t)  TYPE="$OPTARG"
            ;;
        f)  FILE="$OPTARG"
            ;;
    esac
done

if [ -z "$TYPE" ]; then
  echo "No -t. Bye."
  exit 1 # error
else
  if [ -n "$FILE" ]; then
    echo "$TYPE and $FILE"
  else
    echo JUST $TYPE
  fi
fi

$TYPE に有効なオプションを指定することは可能ですか? たとえば、有効なタイプ オプションは次のとおりです。

IMAGE, ZIP, DOC

これらのタイプのいずれかが有効な引数として指定されている場合、スクリプトは既存の行を実行します。

"echo "$TYPE and $FILE""

それ以外の場合は、エラーをエコーし​​て終了します。これは可能ですか?

4

1 に答える 1

3

-tswitchを除外する必要がある場合:

(...)
        t)
            case $OPTARG in
                img|image|doc)
                    TYPE="$OPTARG"
                ;;
                *)
                    echo >&2 "Unsupported type..."
                    exit 1
                ;;
            esac
        ;;
(...)
于 2013-01-22T21:34:00.843 に答える