SHELL编程之变量

2. 本地变量:

本地变量在用户现在的shell生命期的脚本中使用,如果在shell中启动另一个进程或退出,变量值将无效!严格来说,在当前shell中所定义的变量,均属于本地变量,只有经过export导出的,才能成为环境变量。

设置变量:

# var-name=value              //或 ${var-name = value} 使用环境中设置

等号左边不能有空格,取值包含空格时需要用双引号括起来;变量名称不能使用$符,第一个字母不能是数字;

VAR+value 如果设置了VAR(包括空值和非空值),则使用value作为返回值。(取值并不设置到VAR)

VAR:+value 同上,但不包括空值。


VAR-value 如果VAR没有设置,则使用value做为返回值。(取值并不设置到VAR)

VAR:-value 同上,但空值时也以value做返回值。


VAR:?value 如果未设置VAR或为空值,显示value到错误信息 

VAR?value 如果未设置VAR,显示value到错误信息

VAR?和VAR:? 直接用于测试变量VAR是否进行设置,如果没有设置,提示错误信息。 

? 以上四个变量测试,不带value时,直接输入系统预定错误,如果有value,则显示对应内容到错误信息中。


VAR=value VAR未设置,使用value做为返回值,同时将VAR赋值为value

VAR:=value VAR未设置或为空,使用value做为返回值,同时将VAR赋值为value


PS:

带:号表示null值 会受影响,不带:号,null不受影响。


显示变量:

echo $NAME 或 echo ${NAME}

清除变量:

unset var-name 

unset name和unset -v表示将指定shell变量从当前环境中清除。但不能清除只读变量。如果使用unset -f fname选项(fname为shell函数名),相关的函数定义也会被清除掉。清除成功后,后续命令中将不会再有该变量或函数。另外,除非name指定的是一个只读变量,unset将返回true。

注:如果特殊变量RANDOM, SECONDS, LINENO, HISTCMD, FUNCNAME,GROUPS,DIRSTACK被unset了,即使随后又重置了该变量,它们也将失去其特性。

另外, 注意区分null value 与 unset 的本质区别,它们在通过echo $VAR查看时显示一致。

显示本地所有shell变量

#  set
包含当前设置的所有shell变量及shell函数及定义。函数其实也可能通过unset fun-name直接清除,但变量不能使用unset -f 清除。


p.14.2.6





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值