shell环境变量以及set,env,export的区别
一.shell环境变量的分类以及set env export的区别:
set:显示(设置)shell变量 包括的私有变量以及用户变量,不同类的shell有不同的私有变量 bash,ksh,csh每中shell私有变量都不一样
env:显示(设置)用户变量变量
export:显示(设置)当前导出成用户变量的shell变量。
举个例子来讲:
$ aaa=bbb --shell变量设定 $ echo $aaa bbb $ env| grep aaa --设置完当前用户变量并没有 $ set| grep aaa --shell变量有 aaa=bbb $ export| grep aaa --这个指的export也没导出,导出变量也没有 $ export aaa --那么用export 导出一下 $ env| grep aaa --发现用户变量内存在了 aaa=bbb
总结:linux 分 shell变量(set),用户变量(env), shell变量包含用户变量,export是一种命令工具,是显示那些通过export命令把shell变量中包含的用户变量导入给用户变量的那些变量.
二:使用unset命令来清除环境变量
清除环境变量的值用unset命令。如果未指定值,则该变量值将被 设为NULL。注意set 、env 、export设置的变量,都可以用unset来清除的。
示例如下:
$ export TEST="Test..." #增加一个环境变量TEST $ env|grep TEST #此命令有输入,证明环境变量TEST已经存在了 TEST=Test... $ unset $TEST #删除环境变量TEST $ env|grep TEST #此命令没有输出,证明环境变量TEST已经不存在了
三:使用readonly命令设置只读变量
使用了readonly命令的话,变量就不可以被修改或清除了。示例如下:
$ export TEST="Test..." #增加一个环境变量TEST $ readonly TEST #将环境变量TEST设为只读 $ unset TEST #会发现此变量不能被删除 -bash: unset: TEST: cannot unset: readonly variable $ TEST="New" #会发现此也变量不能被修改