首页 > 代码库 > Shell编程 之 变量设置时的不同模式

Shell编程 之 变量设置时的不同模式

未命名
#!/bin/bash
#======================================================
#文件:var_test.sh
#作者:daojoo, daojoo@qq.com
#作用:测试变量设置时的不同模式
#版本:1.0
#日期:2012年03月09日 星期五 10时41分39秒
#======================================================
 
 
 
#---------------变量设置时的不同模式--------------------
#var-name=value        设置实际值到var-name
#var-name+value        如果设置了var-name,则用value代替其值
#var-name:-value    如果未设置var-name,则用value代替其值
#var-name:=value    如果未设置var-name,则设置其值为value
#var-name?value        如果未设置var-name,显示系统错误信息
#var-name:?value    如果未设置var-name,显示用户错误信息
#---------------------------------------------------
 
 
#var=value    设置了
#var=        未设置
#var=""        未设置
 
 
#---------------------------------------------------
#var-name=value        设置实际值到var-name
echo "\${var1=value1} : ${var1=value1}"
echo "\${var1} : ${var1}"
#输出:
#${var1=value1} : value1
#${var1} : value1
#---------------------------------------------------
 
 
#---------------------------------------------------
#var-name+value        如果设置了var-name,则用value代替其值
#设置了,则代替,代替的是${var2+value2new}的值,而不是变量var2的值
var2=value2
echo "\${var2+value2new} : ${var2+value2new}"
echo "\${var2} : ${var2}"        #注意是代替,而不是给var2赋值,所以var2仍然是空值
#输出:
#${var2+value2new} : value2new
#${var2} : value2
 
#未设置,则不代替
echo "\${var22+value22new} : ${var22+value22new}"
echo "\${var22} : ${var22}"
#输出:
#${var22+value22new} :
#${var22} :
#---------------------------------------------------
value2new
 
#---------------------------------------------------
#var-name:-value    如果未设置var-name,则用value代替其值
#未设置,则代替,代替的是${var3:-value3new}的值,而不是变量var3的值
echo "\${var3:-value3new} : ${var3:-value3new}"
echo "\${var3} : ${var3}"        #注意是代替,而不是给var3赋值,所以var3仍然是空值
#输出:
#${var3:-value3new} : value3new
#${var3} :
 
#设置了,则不代替
var33=value33
echo "\${var33:-value33new} : ${var33:-value33new}"
echo "\${var33} : ${var33}"
#输出:
#${var33:-value33new} : value33
#${var33} : value33
#---------------------------------------------------
 
 
#---------------------------------------------------
#var-name:=value    如果未设置var-name,则设置其值为value
#如果未设置,则为变量赋值
echo "\${var4:=value4new} : ${var4:=value4new}"
echo "\${var4} : ${var4}"        #var4:=value4new相当于为var4赋值,此时变量var4的值已经为value4new
#输出:
#${var4:=value4new} : value4new
#${var4} : value4new
 
#如果设置了,则不再赋值,而是用其原来的值
var44=value44
echo "\${var44:=value44new} : ${var44:=value44new}"
echo "\${var44} : ${var44}"
#输出:
#${var44:=value44new} : value44
#${var44} : value44
#---------------------------------------------------
 
 
#---------------------------------------------------
#var-name?value        如果未设置var-name,显示系统错误信息
#var-name:?value    如果未设置var-name,显示用户错误信息
#未设置,则报错
#echo "\${var5?value5new} : ${var5?value5new}"    #系统错误信息
#输出:./bashsupport.sh: line 97: var5: value5new
#echo "\${var6:?value6new} : ${var6:?value6new}"    #用户错误信息,注释掉上面一条语句,才能执行到此
#输出:./bashsupport.sh: line 99: var6: value6new
 
#设置了,则输出变量的值
var55=var55
echo "\${var55?value55new} : ${var55?value55new}"
#输出:${var55?value55new} : var55
var66=var66
echo "\${var66?value66new} : ${var66?value66new}"
#输出:${var66?value66new} : var66
#---------------------------------------------------


来自为知笔记(Wiz)