1、name=${name2:-word}
当name2这个变量已经设置过了(就是说name2这个变量设置过值),则把它的值赋值给name。如果name2这个变量没有设置过值,则把word当作name的值。
2、name=${name2:=word}
当name2这个变量已经设置过了,就把name2的值赋值给name这个变量,如果name2没有设置过,则把word赋值给name2
3、name=${name2:?word}
当name2这个变量设置过了,就把name2的值赋值给name,如果没有设置过值,则打印出word,但并不把值赋值给name
4、name=${name2:+word}
当name2这个变量有值,则把word的值赋给name,如果name2没有值,则什么都不设置。
当name2这个变量已经设置过了(就是说name2这个变量设置过值),则把它的值赋值给name。如果name2这个变量没有设置过值,则把word当作name的值。
2、name=${name2:=word}
当name2这个变量已经设置过了,就把name2的值赋值给name这个变量,如果name2没有设置过,则把word赋值给name2
3、name=${name2:?word}
当name2这个变量设置过了,就把name2的值赋值给name,如果没有设置过值,则打印出word,但并不把值赋值给name
4、name=${name2:+word}
当name2这个变量有值,则把word的值赋给name,如果name2没有值,则什么都不设置。
这里的word是一个字符串,表示要设置给设置或输出的内容。
另个文档
shell参数置换变量、控制结构与特殊命令
一、shell的参数置换变量
所谓参数置换变量通常是指将含有一种变量的表达式的值赋给另一变量。也是一种为变量赋值的方式。
参数置换变量的格式与功能:教材160 表6-1
变量2 = ${变量1: – 字符串} 变量2因变量1有值且非空时取其值,否则取字符串值
变量2 = ${变量1: =字符串} 变量2因 变量1有值且非空时取其值,否则取字符串值,
同时将字符串赋值给变量1
变量2 = ${变量1: ?字符串} 变量2因变量1有值且非空时取字符串值,否则取空值
变量2 = ${变量1: +字符串} 变量2因变量1有值且非空时取字符串值,否则取空值,
同时为变量1赋空值
例:
变量2 = ${变量1: – 字符串} 变量2因变量1有值且非空时取其值,否则取字符串值