知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

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

发布时间:2014-09-05 13:45:19作者:知识屋

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仍为空.
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜