首页 > 代码库 > 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)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。