Bash--使用 Linux环境变量

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

raindayinrain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值