unix ksh为变量赋值两个

时间:2011-04-18 18:28:41

标签: shell unix variables ksh

#!ksh 我想做一些奇怪的事情,但是unix不让我... 请看一下示例:

#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

我需要在其他函数中使用该变量,因此我无法使用案例 有人可以帮忙吗? 谢谢。

2 个答案:

答案 0 :(得分:2)

| character是一个管道,在KSH中具有特殊含义。

用单引号包裹整个字符串,你会没事的。

var ='aa1 | AA1 | aA1'

虽然如果你以后比较像egrep这样的东西,你可以传递它'-i'它会变得不区分大小写,或者取用户的输入并通过'tr'传递它以强制它全部大写或小写所以你知道它会是什么。

很多方便皮肤猫的方法。

答案 1 :(得分: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!