May082011
shell环境变量以及set,env,export的区别
一.shell环境变量的分类以及set env export的区别:
set:显示(设置)shell变量 包括的私有变量以及用户变量,不同类的shell有不同的私有变量 bash,ksh,csh每中shell私有变量都不一样
env:显示(设置)用户变量变量
export:显示(设置)当前导出成用户变量的shell变量。
举个例子来讲:
1
2
3
4
5
6
7
8
9
10 $ 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来清除的。
示例如下:
1
2
3
4
5 $ export TEST="Test..." #增加一个环境变量TEST
$ env|grep TEST #此命令有输入,证明环境变量TEST已经存在了
TEST=Test...
$ unset $TEST #删除环境变量TEST
$ env|grep TEST #此命令没有输出,证明环境变量TEST已经不存在了
三:使用readonly命令设置只读变量
使用了readonly命令的话,变量就不可以被修改或清除了。示例如下:
1
2
3
4
5
6
7
8
9 $ export TEST="Test..." #增加一个环境变量TEST
$ readonly TEST #将环境变量TEST设为只读
$ unset TEST #会发现此变量不能被删除
-bash: unset: TEST: cannot unset: readonly variable
$ TEST="New" #会发现此也变量不能被修改-bash: TEST: readonly variable
本文摘自 http://blog.csdn.net/longxibendi/archive/2011/01/09/6125075.aspx#
对原文内容根据需要有所删减以及修正。
本文固定链接: https://iplaylinux.com/shell-set-env-export.html | Linux玩家