2011-04-18 21 views
1

我想要測試用戶輸入,基本上var1,var2和var3,需要在c1,c2,c3,c4,c5,c6, C7。 我在KSHUnix ksh:if語句中的多個條件,同時測試3個變量

我嘗試過的if語句-a和-o以及和它沒有工作,我試着用[]周邊變量打,不行,我試過省略& &,沒什麼誰能幫忙?

例如:

if [[ "$var1" && "$var2" && "$var3" = "$c1" || "$c2" || "$c3" || "$c4" || "$c5" || "$c6" || "$c7" ]] 

例子:

case "$var1" -a "$var2" -a "$var3" in 
        "$c1"|"$c2"|"$c3"|"$c4"|"$c5"|"$c6"|"$c7") 

我也試圖把C1 select語句裏面c7中,但是,這並不讓我從中選擇3個變量。任何解決方案謝謝

回答

2

你不能像這樣測試多個變量。

編寫一個函數來檢查一個變量是否有效,然後連鎖調用。

isValid() 
{ 
    local value=$1 
    case $value in 
     "$c1"|"$c2"|"$c3"|"$c4"|"$c5"|"$c6"|"$c7") 
       return 0 
       ;; 
    esac 
    return 1 
} 

if isValid $var1 && isValid $var2 && isValid $var3 ; then 
    echo "All valid" 
fi