信息的程序来说非常有用。
Env查看全局变量
Printenv显示个别环境变量
子shell也用全局变量
局部变量
基本和全局变量一样,可以自己定义局部变量,这个和全局变量不一致
Linux没有一个显示局部变量的命令
Set命令会显示一个特定进程的所有环境变量包括局部与全局
用户定义变量
在子shell中创建用户变量
1.通过等号赋值
echo $test_var
Bash shell所有的环境变量名均使用大写字母的标准管理。在自己创建的局部变量或者shell脚本时使用小写字母,这样能够避免重定义环境变量可能带来的灾难。
变量名、等号和值之间没有空格。如果有空格会把值当成当都命令
子shell的自定义环境变量在子shell的子shell中不可用;在子shell的父shell也不可用
2.设置全局变量
创建局部变量,再将局部变量导入到全局变量
修改子shell的全局变量并不会影响父shell的值。且子shell无法使用export设置全局变量
删除环境变量
3.删除环境变量
Unset命令;在使用该命令时,不要使用$
变量使用说明:如果要用到变量,使用$;如果要操作变量,不使用$
如果在子进程中删除一个全局变量,这只对子进程有效,对父进程无效
Shell环境变量
Bash shell源于当初的unix Bourne shell环境变量与其兼容,并有些自有的变量
P110-111
Ps:不是所有的默认环境变量都会在运行set命令时列出,尽管这些都是默认环境变量,但不是每个都必须有一个值。
PATH环境变量
PATH环境变量定义了用于进行命令和程序查找的目录。
如果命令或者程序没有包括在PATH中,那么如果不使用绝对路径,shell无法找到
应用程序不在PATH目录中,保证PATH环境变量包含了所有存放应用程序的目录
PATH=$PATH:/home/test(程序路径)
这种方式并不是永久的
定位系统环境变量
系统启动一个bash shell时,默认情况下bash会在几个文件中查找命令,这些文件叫做启动文件或者环境文件。Bash检查启动的检查文件取决于启动bash shell的方式。启动bash shell有3钟方式
登陆时作为默认登录shell
会从5个不同的启动文件里读取
/etc/profile
$HOME/.bash_profile
$HOME/.bashrc
$HOME/.bash_login
$HOME/.profile
/etc/profile文件是系统默认的bash shell的主启动文件。系统的每个用户登陆时都会执行启动文件
作为非登录shell的交互式shell
作为运行脚本的非交互shell
数组变量