shell中冒号结合等号, 加号, 减号的使用小结

来源:互联网 发布:直播特效软件 编辑:程序博客网 时间:2024/04/29 12:46
在十三问中, 有提到过冒号与等号的情况, 有冒号的, 只要是空值(未定义, null)都能覆盖; 没有冒号的, 只有未定义时, 才能覆盖. 但是返回值没有做详细说明.
1. 冒号与等号

2. 冒号与减号

3. 冒号与加号

4. 运行结果
#############   Test =  #############Case 1: varible unsetstr= abcdvar= abcdstr= abcdvar= abcdCase 2: varible nullstr=var=str= abcdvar= abcdCase 3: varible not nullstr= xyzvar= xyzstr= xyzvar= xyz#############   Test -  #############Case 1: varible unsetstr=var= abcdstr=var= abcdCase 2: varible nullstr=var=str=var= abcdCase 3: varible not nullstr= xyzvar= xyzstr= xyzvar= xyz#############   Test +  #############Case 1: varible unsetstr=var=str=var=Case 2: varible nullstr=var= abcdstr=var=Case 3: varible not nullstr= xyzvar= abcdstr= xyzvar= abcd
5. 总结
1. 设定缺省值(:=): 1.1 未定义时, 生成缺省值;
                                 1.2 空值时, 有冒号就生成缺省值;
                                 1.3 有值时, 不覆盖.
2. 缺省值(:-):           2.1 未定义时, 原变量str不会变; 返回值var可覆盖;
                                 2.2 空值时, 变量str不会变;
                                 2.3 有值时, 不覆盖.
3. 覆盖缺省值(:+): 3.1 未定义时, 原变量str, 返回值var不会变;
                                3.2 空值时, 原变量str不会变;
                                3.3 有值时, 覆盖变量str的缺省值
注意:
1. =, -有值时, 原变量不变, 只有:+才能覆盖;
2. +, -无值时, 原变量str仍为空.

可惜总结的不是很本质, 欢迎高手指导.

原创粉丝点击