shell的变量替换小结:

   1.${}结构的语法;

    a)":="句法,例如echo "${temp:=$other}"其所表述的是,当变量"temp"已被定义,并且有一个非空的值时,变量"temp"才会被设置成"other"的值;

    b)"="句法,例如echo "${temp=$other}"其所表述的是,当变量"temp"未被定义时才会被设置成变量"other"的值;

    c)":-"句法,例如echo "${temp:-$other}"其所表述的是,当变量"temp"已被定义并且其值为空,则会被替换成变量"other"的值,但是变量"temp"的值本身不变;

    d)"-"句法,例如echo "${temp-$other}"其所表述的是,当变量"temp"未被定义时才会被替换成变量"other"的值,但是变量"temp"的值本身不变;

    e)":?"句法,例如echo "${temp:?$other}"其所表述的是,当变量"temp"已经定义但其值被设置为空,或者未定义,${}表达式会使用变量"other"的值并退出shell;

    f)"?"句法,例如echo "${temp?$other}"其所表述的是,当变量"temp"未被定义,${}表达式会使用变量"other"的值并退出shell;

    g)":+"句法,例如echo "${temp:+$other}"其所表述的是,当变量"temp"已被定义且为非空才将,变量"temp"替换为变量"other"的值;

    h)"+"句法,例如echo "${temp+other}"其所表述的是,当变量"temp"一旦被定义则将其替换为变量"other"的值。