+ -
当前位置:首页 → 问答吧 → 求助shell的变量的设置说明

求助shell的变量的设置说明

时间:2011-06-21

来源:互联网

各位大大,小弟菜鸟,请教一下以下的+、-、?、=是代表什么意思呀?先感谢了 (注:我把后面的wsh1换成newvar随便的一个值显示结果都是一样的)求助呀,我是刚学,如果有相关的资料也请不吝惜,大家分享下,呵呵。
#wsh=123;wsh1=456
#echo $wsh
#var=${wsh-wsh1}
#echo $var
123
#var=${wsh+wsh1}
#echo $var
wsh1
#var=${wsh=wsh1}
#echo $var
123
#var=${wsh?wsh1}
#echo $var
123

作者: marlon1   发布时间: 2011-06-21

参数置换的变量

shell提供了参数置换能力以便用户可以根据不同的条件来给变量赋不同的值。参数置换的变量有四种,这些变量通常与某一个位置参数相联系,根据指定的位置参数是否已经设置类决定变量的取值,它们的语法和功能分别如下。

a. 变量=${参数-word}:如果设置了参数,则用参数的值置换变量的值,否则用word置换。即这种变量的值等于某一个参数的值,如果该参数没有设置,则变量就等于word的值。

b. 变量=${参数=word}:如果设置了参数,则用参数的值置换变量的值,否则把变量设置成word然后再用word替换参数的值。注意,位置参数不能用于这种方式,因为在shell程序中不能为位置参数赋值。

c. 变量=${参数?word}:如果设置了参数,则用参数的值置换变量的值,否则就显示word并从shell中退出,如果省略了word,则显示标准信息。这种变量要求一定等于某一个参数的值,如果该参数没有设置,就显示一个信息,然后退出,因此这种方式常用于出错指示。

d. 变量=${参数+word}:如果设置了参数,则用word置换变量,否则不进行置换。

所有这四种形式中的“参数”既可以是位置参数,也可以是另一个变量,只是用位置参数的情况比较多。

作者: dn833   发布时间: 2011-06-22