课程章节: 第2章 shell编程基础:2-9 Shell中的字符串处理(二)(课程链接:https://coding.imooc.com/lesson/549.html#mid=50186)
主讲老师: 沈奇才
课程内容:shell编程实战与Linux运维基础--初始shell编程
课程收获:
一、变量没有定义之前,给变量echo一个默认的值方法:-或者 :- (减号可以理解是替换的意思)
echo "${var3-xyz}" :输出结果xyz
echo "${var3:-xyz}" :输出结果xyz
两者的区别:如果var3之前有定义为空,则第一种不带冒号的输出结果为空,第二种结果为xyz,即默认值会生效,第一种默认值不会生效。
如果之前var3的值定为不为空,则两种方法均无法生效(只有变量没有被赋值,默认值才会生效)
二、给变量echo一个默认的值另一个方法:+ 或者 :+ (加号同样可以理解是替换的意思)
echo "${var4+xyz}" :输出结果空
echo "${var4:+xyz}" :输出结果空
两者的区别:如果var4之前有定义为空,则第一种不带冒号的输出结果为xyz,第二种结果为空,即默认值不会生效,但第一种默认值会生效。
如果之前var3的值定为不为空,则+的两种方法均可以生效,变为xyz(只有变量赋值后,默认值生效)