自定义变量
# 基本语法
定义语法
- 变量=值
撤销变量
- unset 变量
声明静态变量;声明只读变量
- readonly 变量
- 注意:不能unset
应用实例
- 定义变量A,撤销变量A
A=100
echo "A=$A"
unset A
echo "A=$A"
# 此时打印为空
1
2
3
4
5
6
2
3
4
5
6
- 声明静态变量 B=2
- 静态变量不能unset
- 静态变量不能修改为其他值
- 一般很少使用 readonly
readonly B=2
echo "B=$B"
unset B
-bash: unset: B: cannot unset: readonly variable
B=5
-bash: B: readonly variable
echo "B=$B"
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 变量定义规则
变量名称可以由字母,数字,下划线组成,不能使用数字开头
变量名称一般大写
等号两侧不能有空格
应用实例
- 如果有空格
[root@hadoop100 test01]# A = 6
-bash: A: command not found
1
2
2
# 变量值中的空格
在bash中,变量的默认类型都是字符串类型,无法直接进行数值运算
变量的值如果有空格,需要使用双引号或单引号括起来
- 单引号:字符串中的所有字符进行转义(包括特殊字符)
- 双引号:不会对字符串的内容进行转义
示例:关于shell中的值都是字符串,如果使用+,没有数值运算符的效果,整个C是一个字符串值
[root@hadoop100 test01]# A=5
[root@hadoop100 test01]# C=$A+3
[root@hadoop100 test01]# echo $C
5+3
1
2
3
4
2
3
4
示例:值含空格的变量,必须使用单引号或双引号括起来
[root@hadoop100 test01]# A="I am a variable"
[root@hadoop100 test01]# echo $A
I am a variable
1
2
3
2
3
示例:单双引号的区别,!在shell中有特殊含义,是特殊字符
[root@hadoop100 test01]# A="this is !"
-bash: !": event not found
# 需要使用单引号
[root@hadoop100 test01]# A='this is !'
[root@hadoop100 test01]# echo $A
this is !
1
2
3
4
5
6
7
2
3
4
5
6
7
也可使用${x}的方式调用
# 将命令的返回值赋值给变量
# 方式1
反引号
# 运行 ls -la命令,并将返回的结果赋值给A
A=`ls -la`
1
2
2
# 方式2
使用$()
# 等价于反引号
A=$(ls -la)
1
2
2
示例
- 对于单个变量,可以使用(),也可以省略
MY_DATA=$(date)
echo "data=$MY_DATA"
1
2
2
Last Updated: 2022/03/20, 10:04:55