频道栏目
首页 > 系统 > Linux > 正文

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

2013-10-10 10:46:05         来源:清风小阁  
收藏   我要投稿

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

在十三问中, 有提到过冒号与等号的情况, 有冒号的, 只要是空值(未定义, null)都能覆盖;
没有冒号的, 只有未定义时, 才能覆盖. 但是返回值没有做详细说明.
1. 冒号与等号



2. 冒号与减号



3. 冒号与加号



4. 运行结果

[sql] 

 

############# Test = ############# 

Case 1: varible unset 

str= abcd 

var= abcd 

str= abcd 

var= abcd 

Case 2: varible null 

str= 

var= 

str= abcd 

var= abcd 

Case 3: varible not null 

str= xyz 

var= xyz 

str= xyz 

var= xyz 

 

 

############# Test - ############# 

Case 1: varible unset 

str= 

var= abcd 

str= 

var= abcd 

Case 2: varible null 

str= 

var= 

str= 

var= abcd 

Case 3: varible not null 

str= xyz 

var= xyz 

str= xyz 

var= xyz 

 

 

############# Test + ############# 

Case 1: varible unset 

str= 

var= 

str= 

var= 

Case 2: varible null 

str= 

var= abcd 

str= 

var= 

Case 3: varible not null 

str= xyz 

var= abcd 

str= xyz 

var= 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仍为空.

上一篇:fork,source和exec运行脚本时的差异
下一篇:shell中${}的妙用
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站