1.系统变量
(1)$HOME
显示当前用户的家目录
/root
(2)$PWD
显示当前目录
[root@localhost shelldata]# echo $PWD
/home/yzl/shelldata
(3)$SHELL
显示默认的shell解析器
[root@localhost shelldata]# echo $SHELL
/bin/bash
(4)$USER
显示当前用户
[root@localhost shelldata]# echo $USER
root
2.自定义变量
(1)语法:
定义变量:
变量=值
[root@localhost shelldata]# echo $A
[root@localhost shelldata]# A=2
[root@localhost shelldata]# echo $A
2
[root@localhost shelldata]# A=3
[root@localhost shelldata]# echo $A
3
撤销变量:
unset 变量名
[root@localhost ~]# A=4
[root@localhost ~]# echo $A
4
[root@localhost ~]# unset A
[root@localhost ~]# echo $A
声明静态变量
readonly 变量=值
[root@localhost ~]# readonly B=5
[root@localhost ~]# echo $B
5
[root@localhost ~]# B=8
-bash: B: readonly variable
[root@localhost ~]# unset B
-bash: unset: B: cannot unset: readonly variable
静态变量不可以被重新赋值或者unset。
可以把变量提升为全局环境变量,可供其他Shell程序使用
export 变量名
编辑helloworld.sh的内容如下,需要输出变量hello123的值:
[root@localhost shelldata]# cat helloworld.sh
#!/bin/bash
echo "hello world"
echo $hello123
在bash文件外部定义变量hello123并赋值,运行bash脚本:
[root@localhost shelldata]# hello123="this is hello123"
[root@localhost shelldata]# ./helloworld.sh
hello world
将hello123提升为全局环境变量,再次运行脚本:
[root@localhost shelldata]# export hello123
[root@localhost shelldata]# ./helloworld.sh
hello world
this is hello123
(2)变量定义规则
- 变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。
- 等号两侧不能有空格
- 在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。
[root@localhost ~]# C=1+2
[root@localhost ~]# echo $C
1+2
- 变量的值如果有空格,需要使用双引号或单引号括起来。
[root@localhost ~]# D='1 hello'
[root@localhost ~]# echo $D
1 hello