Bash Shell–使用 Linux环境变量
环境变量
bash shell用一个叫作环境变量( environment variable)的特性来存储有关shell会话和工作环境的信息。
这项特性允许你在内存中存储数据,以便程序或shell中运行的脚本能够轻松访问到它们。
在bash shell中,环境变量分为两类:全局变量和局部变量。
全局环境变量对于shell会话和所有生成的子shell都是可见的。
局部变量则只对创建它们的shell可见。
系统环境变量基本上都是使用全大写字母,以区别于普通用户的环境变量。
要查看全局变量,可以使用env或printenv命令。
也可以使用echo显示变量的值。在这种情况下引用某个环境变量的时候,必须在变量前面加上一个美元符( $)。
set命令会显示为某个特定进程设置的所有环境变量,包括局部变量、全局变量以及用户定义变量。
如果要给变量赋一个含有空格的字符串值,必须用单引号来界定字符串的首和尾。
没有单引号的话, bash shell会以为下一个词是另一个要执行的命令。
变量名、等号和值之间没有空格。
设置了局部环境变量后,就能在shell进程的任何地方使用它了。
但是,如果生成了另外一个shell,它在子shell中就不可用。
类似地,如果你在子进程中设置了一个局部变量,那么一旦你退出了子进程,那个局部环境变量就不可用。
设置全局环境变量:export命令
全局和局部本质含义类似继承属性。全局变量在生成子shell或子进程时可被继承。局部则不可。
继承与否,父子shell或进程的环境变量此后是独立两份,互不干扰。
删除环境变量
unset命令删除已经存在的环境变量。
如果要用到变量,使用;
如果要操作变量,不使用。
这条规则的一个例外就是使用printenv显示某个变量的值。
和修改变量一样,在子shell中删除全局变量后,你无法将效果反映到父shell中。
$HOME表示的是某个用户的主目录。它和波浪号( ~)的作用一样。
要给某个环境变量设置多个值,可以把值放在括号里,值与值之间用空格分隔。
要引用一个单独的数组元素,就必须用代表它在数组中位置的数值索引值。索引值要用方括号括起来。
要显示整个数组变量,可用星号作为通配符放在索引值的位置。
用unset命令删除在索引值为2的位置上的值。
显示整个数组时,看起来像是索引里面已经没这个索引了。
但当专门显示索引值为2的位置上的值时,就能看到这个位置是空的。
可以在unset命令后跟上数组名来删除整个数组。
总结
Linux系统使用全局环境变量和局部环境变量存储系统环境信息。
PATH环境变量定义了bash shell在查找可执行命令时的搜索目录。
可以修改PATH环境变量来添加自己的搜索目录(甚至是当前目录符号),以方便程序的运行。
参考
1. https://blog.csdn.net/qq_44710568/article/details/105013208