shell 几中专用修饰符 :- :+ := ${variable:offset:length}

${variable:-word} 如果variable已经被设置了,且不为空,则代入它的置,否则代入word;

$ fruit=peach

$ echo ${fruit:-plum}

peach

$ echo ${newfruit:-apple}

apple

 

${variable:=word}如果variable已经被设置且不为空,则代入它的值,否则代入word,并且在后面variable始终为word的值。位置参量不能用这种方式赋值。

$ name=

$ echo ${name:=peter}

peter

 

$ echo $name

  peter

 

 

${variable:+word} 如果变量variable已被设置且值为非空,代入word值,否则什么也不代入,

$ foo=grapes

$ echo ${foo:+pears}

pears

$ echo $foo

   grapes

 

 

${variable:?word} 如果变量variable已被设置值且为非空,就代入它的值,否则输出word并从shell中退出,如果有省略了word,就会显示信息:parameter null or not set.

$ echo ${namex:?"namex is undefined"}

  namex: namex is undefined

 

$ echo ${y?]

 y: parameter null or not set

 

 

${variable:offset} 获得变量从variable值中位置从offset开始的子串,偏移为从0到串尾。

${variable:offset:length} 获得variable值位置从offset开始长度为length的子串。

 

$var=notebook

$ echo ${var:0:4}

 note

$ echo ${var:4:4]

book

 

你可能感兴趣的:(shell 几中专用修饰符 :- :+ := ${variable:offset:length})