满意答案
houshuo828
2016.10.11
采纳率:45% 等级:12
已帮助:7863人
shell中冒号结合等号, 加号, 减号的使用小结在十三问中, 有提到过冒号与等号的情况, 有冒号的, 只要是空值(未定义, null)都能覆盖;没有冒号的, 只有未定义时, 才能覆盖. 但是返回值没有做详细说明.1. 冒号与等号2. 冒号与减号3. 冒号与加号4. 运行结果[sql]#############Test=#############Case1:varibleunsetstr=abcdvar=abcdstr=abcdvar=abcdCase2:variblenullstr=var=str=abcdvar=abcdCase3:variblenotnullstr=xyzvar=xyzstr=xyzvar=xyz#############Test-#############Case1:varibleunsetstr=var=abcdstr=var=abcdCase2:variblenullstr=var=str=var=abcdCase3:variblenotnullstr=xyzvar=xyzstr=xyzvar=xyz#############Test+#############Case1:varibleunsetstr=var=str=var=Case2:variblenullstr=var=abcdstr=var=Case3:variblenotnullstr=xyzvar=abcdstr=xyzvar=abcd5. 总结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仍为空.
00分享举报