SHELL——环境变量
1、系统变量
SHELL环境变量分类:
作用域分类为全局变量和局部变量、
系统变量和用户自定义变量。
打印系统全局变量命令:env、printenv
打印系统局部变量命令:set
在编辑器中查看系统全局变量命令:env | less
在编辑器中查看系统局部变量命令:set | less
(全局变量可以在子shell中查看、修改。)
(系统局部变量可以继承到子shell,但修改子shell中的局部变量不会改变父shell中的局部变量。)
2、用户自定义变量
定义变量方法命令:变量名=值
(等号两边没有空格)
(若值中有空格可以用单引号或者双引号把值括起来)
(默认定义的变量都是字符串类型)
如果在定义变量时候需要进行整形计算则使用$(())或者$[]
例如:变量名=$((3+5))、变量名=$[5+9]
变量升级为全局变量命令:export 变量名
(升级为全局变量后可以被子shell继承)
(子shell中的局部变量不会改变父shell中的局部变量)
撤销变量命令:unset 变量名
设置静态变量命令:readonly 变量名(静态变量不能unset)
3、特殊变量
处理脚本输入的变量
source 脚本名称 参数
脚本输入参数:$0、$1、$2
脚本中用$1表示第一个参数,$2表示第二个参数,$0表示脚本名称。
脚本输入参数个数:$#
所有参数的整体:$*
使用for循环遍历每一个参数:$@
最后一次执行命令的返回状态:$?(正常执行返回0,执行错误返回其他值)
4、执行脚本的区别
创建子shell并且在子shell中执行.sh脚本命令:./***.sh、bash ***.sh
在当前shell中执行脚本:. ***.sh、source ***.sh