- 論壇徽章:
- 0
|
shell十三問:
http://72891.cn/viewthread.php?tid=218853&extra=&page=5
測(cè)試環(huán)境:
OS:debian
shell:bash shell
一:var=${parameter:=word}
如果parameter是unset或者null,parameter就會(huì)被賦值為經(jīng)過expansion處理后的word,var值為word。
如果不為not null,則就等于parameter.
- showvar(){
- var=${str:=expr}
- echo \$var is $var
- echo \$str is $str
- }
- unset str
- showvar
- str= #the value is null
- showvar
- str=123456
- showvar
復(fù)制代碼
- 結(jié)果為:
- $var is expr #擴(kuò)展
- $str is expr #擴(kuò)展
- $var is expr #擴(kuò)展
- $str is expr #擴(kuò)展
- $var is 123456
- $str is 123456
復(fù)制代碼
var=${parameter=word}
如果parameter是unset,則parameter值賦值為word,var值為word.
如果parameter是null,則parameter賦值為null,var值為null.
如果不為not null,則就等于parameter.
- showvar(){
- var=${str=expr}
- echo \$var is $var
- echo \$str is $str
- }
- unset str
- showvar
- str= #the value is null
- showvar
- str=123456
- showvar
復(fù)制代碼
結(jié)果為:
- $var is expr
- $str is expr
- $var is
- $str is
- $var is 123456
- $str is 123456
復(fù)制代碼
二:var=${parameter:-word}
如果parameter是unset或者null,擴(kuò)展的結(jié)果就是經(jīng)過expansion處理后的word,parameter值不變.
如果不為not null,則就等于parameter.
- showvar(){
- var=${str:-expr}
- echo \$var is $var
- echo \$str is $str
- }
- unset str
- showvar
- str= #the value is null
- showvar
- str=123456
- showvar
復(fù)制代碼
結(jié)果為:
- $var is expr
- $str is
- $var is expr
- $str is
- $var is 123456
- $str is 123456
復(fù)制代碼
var=${parameter-word}
如果parameter是unset,var值為word,parameter值為null.
如果parameter是null,var和parameter值為null.
如果not null,則就等于parameter.
- showvar(){
- var=${str-expr}
- echo \$var is $var
- echo \$str is $str
- }
- unset str
- showvar
- str= #the value is null
- showvar
- str=123456
- showvar
復(fù)制代碼
結(jié)果為:
- $var is expr
- $str is
- $var is
- $str is
- $var is 123456
- $str is 123456
復(fù)制代碼
三:var=${parameter word} #我這里測(cè)試出來是錯(cuò)誤,大家測(cè)試結(jié)果如何
- showvar(){
- var=${str:?expr}
- echo \$var is $var
- echo \$str is $str
- }
- unset str
- showvar
- str= #the value is null
- showvar
- str=123456
- showvar
復(fù)制代碼
- 結(jié)果為:
- ./showvar.sh: str: expr
復(fù)制代碼
var=${parameter?word} #我這里測(cè)試出來是錯(cuò)誤,大家測(cè)試結(jié)果如何
- showvar(){
- var=${str?expr}
- echo \$var is $var
- echo \$str is $str
- }
- unset str
- showvar
- str= #the value is null
- showvar
- str=123456
- showvar
復(fù)制代碼
- 結(jié)果為:
- ./showvar.sh: str: expr
復(fù)制代碼
四:var=${parameter:+word}
如果parameter是unset或者null,parameter和var結(jié)果為空。
如果parameter不為null的話,parameter不變,var的值為word.
- showvar(){
- var=${str:+expr}
- echo \$var is $var
- echo \$str is $str
- }
- unset str
- showvar
- str= #the value is null
- showvar
- str=123456
- showvar
復(fù)制代碼
結(jié)果為:
- $var is #null
- $str is
- $var is #null
- $str is
- $var is expr #var=${parameter:+word}的值為word
- $str is 123456
復(fù)制代碼
var=${parameter+word}如果parameter是unset,parameter和var結(jié)果為空.
如果parameter是null,var結(jié)果為word,parameter結(jié)果為null.
如果parameter不為空的話,parameter值為value,var的值為word.
- showvar(){
- var=${str+expr}
- echo \$var is $var
- echo \$str is $str
- }
- unset str
- showvar
- str= #the value is null
- showvar
- str=123456
- showvar
復(fù)制代碼
結(jié)果為:
- $var is
- $str is
- $var is expr
- $str is
- $var is expr #var=${parameter:+word}的值為word
- $str is 123456
復(fù)制代碼
有什么不對(duì)的地方,請(qǐng)大家?guī)兔χ赋。謝謝
[ 本帖最后由 ballball2 于 2007-1-29 15:41 編輯 ] |
|