许多程序和脚本都使用环境变量来获取系统信息,并存储临时数据和配置信息;
1、什么是环境变量
用来存储关于shell会话和工作环境的信息,就叫做环境变量;
bash shell下两种类型:
1、全局变量;
2、局部变量;
1.1、全局环境变量
全局环境变量再shell会话,和在该shell中产生的子进程中都可见。
Linux系统,默认情况下会支持一些全局环境变量,通过printenv来查看全局环境变量;
使用echo命令来查看某个环境变量:
例如:echo $HOME #变量前面必须加上$符号;在子进程中,这个变量依然生效;
1.2、局部环境变量
本地环境变量,只在定义他们的本地进程中生效可见;没有命令可以只显示本地环境变量;
set命令显示特定进程的所有环境变量集。set中看到的除了printenv中的变量外的所有变量,都是本地环境变量
2、设置环境变量
可以在bash shell中直接设置自己的环境变量。
2.1、设置本地环境变量
test=testing
echo $test
如果是字符串,就需要使用引号
test='testing a long string'
echo $test
【注意:我们使用小写字母来定义本地环境变量】
*环境变量名称、等号和值之间没有空格,这一点尤为重要*
同时:如果在子进程中设置了本地环境变量,则一旦离开子进程,本地环境变量将不再可用;
2.2、设置全局变量
我们需要创建一个本地环境变量,然后将其导出到全局环境中。这个过程通过export命令来完成;
test='testing a long string'
echo $test
export test
bash
echo $test #此时,test变量再子进程bash中也会生效了;
3、移除环境变量
unset可以为我们完成删除环境比那辆的操作;
test=testing
export test
unset test
4、默认的shell环境变量
默认的Bourne的环境变量:
1、CDPATH cd命令的搜索路径
2、HOME 当前用户的主目录
3、IFS