Shell编程 之 变量设置时的不同模式
时间:2014-04-29 11:45:46
收藏:0
阅读:272
#!/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
#---------------------------------------------------
评论(0)