实现bash shell getopts代码

时间:2013-01-23 09:41:15

标签: linux bash shell debian

我帮助创建了两个单独的代码:

首先 - 检查是否有T论据

TYPE=""

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

if [ -z "$TYPE" ]; then
  echo "No -t. Bye."
  exit 1 # error
else
  echo "Valid -t!"
  exit 0 # error
fi

第二 - 检查T标志是否有效(img,image或doc)

t)
    case $OPTARG in
        img|image|doc)
            TYPE="$OPTARG"
        ;;
        *)
            echo >&2 "Unsupported type..."
            exit 1
        ;;
    esac
;;

对于我的生活,我无法将两者结合起来并让它们发挥作用。如何让这些脚本发挥得很好,这样我不仅可以检查是否有t参数,还可以检查它是否有效并相应地打印一条消息。

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:1)

#!/bin/bash
TYPE=""

while getopts "t:" opt; do
    case $opt in
        t)
            case $OPTARG in
                img|image|doc)
                    TYPE="$OPTARG"
                ;;
                *)
                    echo >&2 "Unsupported type..."
                    exit 1
                ;;
            esac
        ;;
    esac
done

if [ -z "$TYPE" ]; then
    echo "No -t. Bye."
    exit 1 # error
else
    echo "Valid -t!"
    exit 0 # error
fi