我们在使用操作系统的时候,会了解到系统中的
set
命令的主要作用或者说是大部分作用就是显示系统中已经存在的
shell
变量,以及设置
shell
变量的新变量值。使用
set
更改
shell
特性时,符号
+
和
-
的作用分别是关闭和打开指定的模式。
set
命令不能够定义新的
shell
变量,如果要定义新的变量,可以使用
declare
命令以变量名
=
值的格式进行定义即可。
使用
declare
命令定义一个新的环境变量
tools
。
# 定义新环境变量
$ declare tools='VScode'
再使用set命令将新定义的变量输出为环境变量。
# 设置为环境变量
$ set -a tools
执行该命令后,将会新添加对应的环境变量。用户可以使用env命令和grep命令分别显示和搜索环境变量 tools。
# 显示环境变量值
$ env | grep tools
此时,该命令执行后,将输出查询到的环境变量值。
使用 set/env/export 的区别
[escape@localhost ~]$ name="EscapeWen"
[escape@localhost ~]$ echo $name
EscapeWen
# 设置完当前用户变量并没有对应的值
[escape@localhost ~]$ env | grep name
# 设置完成后shell变量有对应的值
[escape@localhost ~]$ set | grep name
EscapeWen
# 对应的值,使用export也没导出
[escape@localhost ~]$ export| grep name
# 使用expor导出一下,在用户变量就可以找到了
[escape@localhost ~]$ export aaa
[escape@localhost ~]$ env | grep aaa
EscapeWen
使用注意事项
可以使用unset命令来清除环境变量,注意set、env、export设置的变量,都可以用unset来清除的。
# 删除环境变量TEST
[escape@localhost ~]$ export TEST="Test"
[escape@localhost ~]$ unset $TEST
使用readonly命令,设置只读变量。
# 将环境变量TEST设为只读
[escape@localhost ~]$ export TEST="Test"
[escape@localhost ~]$ readonly TEST
Mr_Ma
Vue.js