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#
对原文内容根据需要有所删减以及修正。

本文固定链接: http://iplaylinux.com/shell-set-env-export.html | Linux玩家

该日志由 admin 于2011年05月08日发表在 Linux系统 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: shell环境变量以及set,env,export的区别 | Linux玩家
关键字: , , ,

shell环境变量以及set,env,export的区别:等您坐沙发呢!

发表评论

快捷键:Ctrl+Enter