set,env和export这三个命令的区别



原文地址:http://www.opsers.org/linux-home/base/set-env-and-export-the-difference-between-the-three-command.html

 

今天在学习用户切换的时候,用到到这些变量,就深入学习了一下,下面是在网上GOOGLE到的资料,保留下来,供自己再次学习!
set,env和export这三个命令都可以用来显示shell变量,区别
[root@localhost root]# aaa=bbb
[root@localhost root]# echo $aaa
bbb
[root@localhost root]# set |grep aaa
aaa=bbb
[root@localhost root]# env |grep aaa
[root@localhost root]# export aaa
[root@localhost root]# env |grep aaa
aaa=bbb

set 显示当前shell的变量,包括当前用户的变量
env 显示当前用户的变量
export 显示当前导出成用户变量的shell变量
每个shell都有自己特有的变量,这和用户变量是不同的。当前用户变量和你用什么shell无关,不管你用什么shell都是存在的。比如HOME,SHELL等这些变量,但shell自己的变量,不同的shell是不同的,比如BASH_ARGC, BASH等,这些变量只有set才会显示,是bash特有的。export不加参数的时候,显示哪些变量被导出成了用户变量,因为一个shell自己的变量可以通过export “导出”变成一个用户变量。

注:它上面说的用户变量,就是指环境变量(相当于全局变量),shell自己的变量指的是自定义变量(相当于局部变量)

发布了14 篇原创文章 · 获赞 6 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章