资源描述:
《linux shell 变量和运算符》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、linuxshell变量和运算符<变量详解>发表于2006-5-1708:50作者:枫第一节:变量 大纲: 2.1.1本地变量 2.1.2环境变量 2.1.3变量替换 2.1.4位置变量 2.1.5标准shell变量 2.1.6特殊变量 2.1.7影响变量的命令 2.1.8引号 2.1.9运算符 2.1.10表达式替换 2.1.11运算符的优先级 在进行讲解前,我们要知道什么是shell变量?
2、 其实linux下面的变量,linx下的shell变量和其它高级语言中的定义是一样的,都是放在内存中一定的存储单元,而这个存储单元里面存放这个变量的值,而这个值是可以改变的,我们就称它为变量.2.1.1本地变量定义:是在用户现在的shell生命期的脚本中使用; 例:[redhat@serverredhat]$name="RedHatLinux" #把变量设置为RedHatLinux [redhat@serverredhat]$echo${name} or#显示变量内容 =[redh
3、at@serverredhat]$echo$name #等同上面的语意 RedHatLinux #显示其设定内容, [redhat@serverredhat]$set
4、grep"name" #查看刚才所设定的内容,或不加'grep"name"'查看用户自己所有的本地变量, [redhat@serverredhat]$readonlyname #把name这个变量设置为只读变量,不允许再次设置,这可参考变量定义;-_-! [redhat@serverredhat]$name="HeSenLin"#
5、重新赋值 bash:name:readonlyvariable #只读文件系统 [redhat@serverredhat]$readonly #查看系统存在的只读文件 附:重新登录一下系统,再次用 [redhat@serverredhat]$echo${name} #本地变量就不存在了,说明本地变量只能存活在用户shell的生命周期中,重登录就不在了,2.1.2环境变量定义:环境变量用于所有用户进程<通称为子进程>,包括编辑器,脚本和应用,登录进程为父进程,shell中执行的用户进程均为子进程,
6、不像本地变量只用于现在的shell.存在目录在所有用户的主目录下<即/home>/.bash_profile或如何设置环境变量?第一种方法就是编辑上面的二个文件,还可以用"export"进行设定或更改;这可不像本地变量只需name="RedHatLinux"那样简单,但却可以把本地变量更改为环境变量;只须在本地变量结束后,输入:export<变量名>;例,我们把name由本地变量修改为环境变量,我们可以这样做;[root@serverroot]#name="RedHatLinu
7、x" #本地变量[root@serverroot]#exportname #变量name由本地升为环境 当然也可以用下面这种方法;[root@serverroot]#exportname="RedHatLinux" #直接定义name为环境变量;定义后,可通过env进行查看,不知道上面的本地环境变量由哪个命令进行查看你记住了没有?,演示一下查看现在定义的环境变量;[root@serverroot]#env
8、grep"name"RedHatLinux同样不加后面grep"name",这
9、个参数也是查看所有的环境变量;更同样的是我们也可以运行readonly这个参数给name以只读属性; Tips:环境变量就是全部包含在本地变量中<因为它即可运行于父进程中也可运行于子进程中>,注意一点,本地变量不能运行在全部进程中,只有环境变量可以,再不懂就联想一下人与自然吧;-_-!还是不会?用绝招: [root@serverroot]#you=myfriend #设置本地变量name为myfriend [root@serverroot]#echo${you} #查看一下是否成功
10、 myfriend#成功 [root@serverroot]#sh #更换shell环境等同重登录,这相当一个 sh-2.05b#echo$you #用户子进程 #没显示,说明不存在,真的不存在? sh-2.05b#exit #返回bash环境 [root@serverroot]#echo$you #再次查看; myfriend #又出来了,怎么回事? [root@serv