2013-01-23 32 views
0

我帮助创建的代码,两个不同的部分:实施的bash shell getops代码

FIRST - 检查是否有AT ARGUMENT

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 

SECOND - 检查,如果T标志是有效的(IMG,图像或doc)

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

对于我的生活,我不能将两者结合起来让他们工作。我怎样才能让这些脚本玩得很好,所以我不仅检查是否有参数,还要检查它是否有效,并相应地打印一条消息。

谢谢你给予的任何帮助。

回答

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