一、简介与分类
1. Bash 变量的命名规则
变量名只能包含字母、数字、下划线
变量名不能以数字作为开头
变量名区分大小写
变量名长度不超过255个字符
变量名在有效范围内必须唯一
2. 变量按照存储的数据类型分类
在Bash中,变量的默认类型都是字符串型
字符串型
整型
浮点型
日期型
3. 变量的分类
用户自定义变量
用户自己定义的变量名
环境变量
环境变量主要保存的是和系统操作环境相关的数据。
变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的。
位置参数变量
位置参数变量主要是用来向脚本当中传递参数或数据的。
变量名不能自定义,变量作用是固定的。
预定义变量
预定义变量是 bash 中已经定义好的便令。
变量名不能自定义,变量作用是固定的。
二、用户自定义变量
1. 定义变量
语法
变量名="变量值"
说明
等号两边不能有空格
当变量值中间有空格时,要用引号包裹变量值
变量的默认类型都是字符串型
变量只在当前的 bash 中生效
实例
[root~]# age=18
[root~]# name="zhang san"
2. 变量调用
语法
$变量名
说明
调用变量需要在变量名前加 $
变量的默认类型都是字符串型,所以无法直接做 +, - 等运算操作
赋值时引用变量,可使用 "$变量名" 或 ${变量名}
赋值时引用变量,若要在值两边使用引号,则必须使用双引号,若使用单引号,则单引号内的变量不会转换成变量值
实例
调用变量需要在变量名前加 $
[root~]# echo $name
zhang san
变量的默认类型都是字符串型,所以无法直接做 +, - 等运算操作
[root~]# x=1
[root~]# y=2
[root~]# z=$x+$y
[root~]# echo $z
1+2
赋值时引用变量,可使用 "$变量名" 或 ${变量名}
[root~]# a=hel
[root~]# b="$a"lo
[root~]# echo $b
hello
当变量值中间有空格时,要用引号包裹。赋值时引用变量,必须使用双引号
[root~]# c="${b} world"
[root~]# echo $c
hello world
赋值时引用变量,若使用单引号,则单引号内的变量不会转换成变量值
[root~]# d='${b} world'
[root~]# echo $d
${b} world
3. 变量叠加
实例
[root~]$x=123
[root~]$echo $x
123
[root~]$x=${x}456
[root~]$echo $x
123456
[root~]$x="$x"789
[root~]$echo $x
123456789
4. 变量查看
语法
set [选项]
选项
-u:如果设定此项,调用未声明的变量时会报错(默认无任何提示)
实例
m 赋值为空字符串,n 未定义。默认情况下,echo $m 和 $n,都没有任何提示
[root~]# m=''
[root~]# echo m
m
[root~]# echo $m
[root~]# echo $n
set -u 后,echo $n 会报错
[root~]# set