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 回答