根据变量的生效范围等标准划分下面变量类型:
set:查看所有变量(全局变量,局部变量还有函数)
1.局部变量(标准变量,普通变量):生效范围为当前shell进程---当前会话(session);对当前shell之外的其它shell进程,包括当前shell的子shell进程均无效
echo $$:当前进程编号(4496)
echo $PPID:父进程编号(4272)
直观查看进程父子关系:pstree -p
2.环境(全局)变量:生效范围为当前shell进程及其子进程(export=declare -x|env命令可以查看系统中环境变量)
第一种定义方法:name=mage------export name
第二种定义方法:export name=mage
第三种定义方法:declare -x name=mage
3.本地变量:生效范围为当前shell进程中某代码片断,通常指函数
4.位置变量:$1, $2, ...来表示,用于让脚本在脚本代码中调用通过命令行传递给它的参数
5.特殊变量:$?, $0, $*, $@, $#,$$
变量赋值:name=‘value’
-
可以使用引用value:
- (1) 可以是直接字串; name=“root"
- (2) 变量引用:name="$USER"
- (3) 命令引用:name=`COMMAND` name=$(COMMAND)
-
变量引用:${name} $name
- "":弱引用,其中的变量引用会被替换为变量值
- '':强引用,其中的变量引用不会被替换为变量值,而保持原字符串