2013-01-23 23 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