预定义变量

image.png

双引号与单引号

•"字符串…”
-在双引号内允许$扩展,可调用其他变量的值
-出现特殊字符时,可采用\符号转义
-当变量值不包括空格、制表符时,双引号通常被省略
•字符串…
-所有字符均视为该字符本身(无特殊含义)
-不允许\转义

利用双引号赋值

•将变量A的值赋给变量B
[root@svr5~]# A=CentOS8.5
[root@svr5 ~]# B=$A //引用另一个变量的值
[root@svr5~]# echo B CentOS8.5 •有空格时,引号不可省略 [root@svr5~]# B=A Server //未加引号时报错
-bash: Server: command not found
[root@svr5~]# B=“$A Server”
[root@svr5~]# echo $B //正确用法
//确认赋值结果
CentOS8.5 Server

常见的转义字符

image.png
FN=“\”(双引号里面有四个字符,两个反斜杠就是一个反斜杠,后面反斜杠加双引号就是双引号本身)

利用单引号赋值

单引号(可以原封不动的保留单引号括起来的字符)
•有利于保留特殊字符
[root@svr5~]# A=CentOS8.5
[root@svr5 ~]# B='AServer//A Server' //被视为普通字符
[root@svr5 ~]# echo B//确认赋值结果B //确认赋值结果 A Server

read取值用法

image.png

read静默取值

image.png

read取值实例
image.png

变量的作用范围

•局部变量
-只在定义此变量的当前Shell环境下有效
-自定义变量默认都是局部变量
•全局变量
-在当前Shell及所有的子Shel环境下都有效
-子Shell中若赋值同名变量,与父Shell中的变量无关

里面开的子shell是用不了,因为x是局部变量只能在外面使用
image.png

发布全局变量

• export局部变量名[=变量值]……
-直接定义/赋值指定的变量,作为全局变量发布
-对已有的局部变量,只需发布不需赋值
image.png

取消全局变量

• export -n全局变量名…
-取消变量的全局属性
-此操作对局部变量无实际意义
[root@svr5~]# export -n Y //将全局变量Y改为局部变量
[root@svr5~]# bash //进入新开启的子Shell环境
[root@svr5~]# echo $Y //在子Shell中Y为未定义的变量

[root@svr5~]#