LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1183|回复: 0

关于shell变量的一些测试

[复制链接]
发表于 2007-10-30 22:07:42 | 显示全部楼层 |阅读模式
1、变量输出时使用{}和不使用{}的异同
#var01='This is a var test'
#echo $var01
This is a var test
#echo ${var01}
This is a var test
说明:在这种情况下要不要{}都一样
#echo ${var01:+ var01 having!}
var01 having!
但是这里如果不要{},如:
#echo $var01:+ var01 having!
This is a var test:+var01 having!
说明:在进行变量替换时,必须要{},类似的还有如下一些替换
#echo ${var01:+?var01 not defined} 如果变量var01没有定义就返回+后的值,如果变量已经定义就返回变量的值
#echo ${var01:-var01 not defined}与上面的含义一致
#echo ${var01:=this is a test var}如果var01没有定义就将=后面的值赋给它,如果存在并定义,就返回它的值
2、清除只读变量
#var02='this is var02'
#readonly var02 将var02变量设置为只读
#echo $var02
this is var02
#unset var02
-bash: unset: var02:can not unset ,readonly variable
这里提示说,只读的变量是不能清除的。不用灰心,只要你exit出当前的shell,这个只读的变量就不存在了,因为它并没有在定义变量的配置文件中显示地定义
#exit
#root
#******
#echo $var02

返回为空
#readonly  不加任何参数,列出所有只读变量
3、环境变量和本地变量
#var03='this is var03'   定义本地环境变量
#set  察看所有本地环境变量
#set|grep var03
this is var03
#export var04='this is var04' 定义环境变量
#env  察看所有环境变量
#env|grep var04
this is var04
#set|grep var04
this is var04
说明:定义的环境变量同时也成为一个本地变量
#env|grep var03

返回为空
说明:定义的本地变量并没有成为环境变量,它只存在于用户本次登陆的shell中,其它用户和程序不能使用这个变量。相反,环境变量定义后,其它用户和程序可以使用,但前提是定义环境变量的这个shell在运行中
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表