2011-04-18 81 views
0

#!ksh 我想做一些怪異,但UNIX是不是讓我... 請看看和例子:UNIX的ksh分配兩個值給一個變量

#assign multiple values to a variable so if the user type 
#upper case or lower case it will be ok 

var=aa1|AA1|aA1 

#then I want to use the variable in a guess script 

我需要使用變量其他功能,所以我不能使用案例 任何人都可以幫忙嗎? 謝謝。

回答

1

你可能想聲明變量爲小寫您之前提示用戶輸入一個值:

$ typeset -l x 
$ read x 
HELLO WORLD 
$ echo "$x" 
hello world 

另一種情況,以配合你在做什麼:

$ answer="hello world" 
$ typeset -l response 
$ read response 
HELLO WORLD 
$ if [ "$answer" = "$response" ]; then echo "Correct!"; fi 
Correct! 
+0

感謝您的回答,但我仍然不明白我如何在腳本中使用它。我可以說排版-l答案= Hello World嗎?我沒有從輸入中獲得變量的值,它意味着被設置爲可用於測試我的猜測腳本。 – learnerNo1 2011-04-18 18:49:18

+0

我實際上使用變量進行比較,如果它等於用戶輸入,但變量不變。我從來沒有使用過排版,這就是爲什麼我不明白。對不起,再次感謝。 – learnerNo1 2011-04-18 18:56:55

+0

對不起,我知道排版現在,我設法在我的腳本上實現它。謝謝。 – learnerNo1 2011-04-18 19:43:43

2

The |角色是一個管道,在KSH中有特殊的意義。

將整個字符串換成單引號,你會沒事的。

VAR =「AA1 | AA1 | AA1」

雖然如果你喜歡的東西egrep的比較後,你可以只通過它-i「,將成爲大小寫不敏感,或採取用戶的輸入並通過'tr'強制它全部大寫或小寫,這樣你就知道它會是什麼了。

許多簡單的方法來剝皮貓。

+0

一點也沒有」 t仍然工作,我正在做一個猜測腳本,我想說如果[$ variable2!= $ var],但正如你寫的變量2只會是相等的變量,如果我寫aa1 | AA1 | aA1,但我只需要鍵入那三個之一:-)。至少這是我的測試如何做... – learnerNo1 2011-04-18 18:44:16