set env export区别

set env export区别

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 “导出”变成一个用户变量。

declare -x var=abc   is equivalent to the following:
export var=abc
It is a bash specific feature, not portable

======================================

对于QShell而言,

env:显示环境变量,包括系统环境变量和用户环境变量

set:显示当前shell本身所使用的一些内部变量(shell变量),如UID, GID,PS1=$等,同时也显示所有env中包含的变量

export:显示当前导出成用户环境变量的shell变量

原文地址:https://www.cnblogs.com/stephen-init/p/3492119.html