Shell:变量
变量
变量是暂时存储数据的地方及数据标记,所存储的数据存在于内存空间中,通过正确地调用内存空间中变量的名字就可以取出与变量对应的数据。
变量类型
变量可分为两类:环境变量(可以看作全局变量)和普通变量(局部变量)。
环境变量
环境变量一般是指用export
内置命令导出的变量,用于定义Shell的运行环境,保证Shell命令的正确执行。
按照语法规范,环境变量名的字母必须为大写。
同时,子Shell进程可以继承父Shell中的环境变量。
定义环境环境变量三个方式:
# 方式一
export ENV_VAR="haha"
# 方式二
ENV_VAR="haha"
export ENV_VAR
# 方式三
declare -x ENV_VAR="haha"
通过env
可以查看所有环境变量。
PATH环境变量
PATH
环境变量,它决定了Shell调用命令时的搜索路径。例如:
export PATH=/usr/local/python/bin:$PATH
设置全局变量并永久生效
可以配置在以下文件内:
/etc/profile
/etc/bashrc
# 若要在登录后初始化或显示加载内容,则把脚本文件放在/etc/profile.d/下即可(无须加执行权限)。
/etc/profile.d/
Tips:对于用户的环境变量设置,比较常见的是用户家目录下的
.bashrc
和.bash_profile
。
环境变量生效顺序
分为两种情况:用户登录启动的shell和非用户登录启动的shell(如手动执行的bash或者远程ssh连接产生的bash)。
用户登录加载环境变量的顺序:
非用户登录启动的shell加载环境变量的顺序:
普通变量
变量定义:
var=value
value可以是数字或者字符串或者命令,字符需要用单引号或者双引号引起来,命令需要用反引号或者$(命令)
方式。
安装语法规范,变量名的字母必须小写。详细规范请参考:Shell语法规范
# 数字
var=123
# 字符串
var='string'
# 命令
var=$(command)
var="$(command "$(command1)")"
调用变量
使用${var}
对变量var
进行调用。
Tips:变量的名称是
var
,而不是${var}
,${var}
是在引用、访问变量在内存中保存的值。
使用${#var}
获取变量var
保存的字符长度。
[root@test ~]# var='sssss'
[root@test ~]# echo ${var}
sssss
[root@test ~]# echo ${#var}
5