linux基础——shell变量

什么是变量?

简单的说,就是让某一个特定字串代表不固定的内容就是了。举个大家在课本中都会学到的数学例子,那就是:“ y = ax + b ”这东西,在等号左边的(y)就是变量,在等号右边的(ax+b)就是变量内容。

例:

[dmtsai@study ~]$ echo ${myname}
<=这里并没有任何数据〜因为这个变量尚未被设置!是空的!
(dratsaiestudy 〜]$ myname=VBird
[dmtsai@study ~]$ echo ${myname}
VBird <=出现了!因为这个变量已经被设置了 

变量的设置规则:
1)变量与变量内容以一个等号“=”来链接
“myname=VBird”
2)等号两边不能直接接空白字符
“myname = VBird”或“myname=VBird Tsai”
3)变量名称只能是英文字母与数字,但是开头字符不能是数字
“2myname=VBird”
4)变量内容若有空白字符可使用双引号“"”或单引号“’”将变量内容结合起来,但
双引号内的特殊字符如 $ 等,可以保有原本的特性。
单引号内的特殊字符则仅为一般字符(纯文本)。

5)可用跳脱字符“ \ ”将特殊符号——转移字符
“myname=VBird\ Tsai”

6)在一串指令的执行中,还需要借由其他额外的指令所提供的信息时,可以使用反单引号“指令”或“$(指令)
“version=$(uname -r)”再“echo $version”可得“3.10.0-229.el7.x86_64”

7)若该变量为扩增变量内容时,则可用 "$变量名称" 累加名称${变量} 累加内容
“PATH="$ PATH":/home/bin”或“PATH=${PATH}:/home/bin”
8)若该变量需要在其他子程序执行,需要以 export 来使变量变成环境变量
“export PATH”
9)通常大写字符为系统默认变量,自行设置变量可以使用小写字符
10)取消变量的方法为使用 unset:“unset 变量名称”例如取消 myname 的设置
“unset myname”

shell变量功能

$:(关于本 shell 的 PID)
?:(关于上个执行指令的回传值)
OSTYPE, HOSTTYPE, MACHTYPE:(主机硬件与核心的等级)

export:自定变量转成环境变量
在这里插入图片描述

[dmtsai@study ~]$ export 变量名称

如果仅下达 export 而没有接变量时,那么此时将会把所有的“环境变量”显示出来

变量的内容替换

##:符合取代文字的“最短的”那一个
##:符合取代文字的“最长的”那一个

具体用法见下表:
在这里插入图片描述
变量测试

测试变量是不是为空,给了很多,真用到测试时选用一个就好

在这里插入图片描述
例:

lzj没有设置变量时时:
[root@localhost ~]# myname=${lzj-expr}
[root@localhost ~]# echo $myname
expr
lzj设置为空时:
[root@localhost ~]# lzj=
[root@localhost ~]# myname=${lzj-expr}
[root@localhost ~]# echo $myname

[root@localhost ~]# 
lzj有变量时:
[root@localhost ~]# lzj=666
[root@localhost ~]# myname=${lzj-expr}
[root@localhost ~]# echo $myname
666

发布了35 篇原创文章 · 获赞 3 · 访问量 6346

猜你喜欢

转载自blog.csdn.net/weixin_43815140/article/details/105344146