本文主要介绍这几个命令在环境变量打印方面的差异;
printenv(1)
命令 printenv 用于打印所有或者部分环境变量;
但是,只能打印已经导出的 Shell 环境变量;
env(1)
命令 env 将仅显示已导出的环境变量列表,并且不会显示所有 bash 变量;
set
命令 set 是 Shell 中的一个内建命令,它能够显示当前 Shell 中的变量,已经用户自定义的变量,不管该变量有没有 export。set 命令允许你更改 Shell 选项的值并设置位置参数,或者显示 Shell 变量的名称和值。如果未提供任何选项或参数,则会设置显示所有 Shell 变量和函数的名称和值(按照当前语言环境排序),并且输出的格式可以重新用作设置或重置当前设置变量的输入;
最后总结
在我的 Debian 中,命令 env(1)和 printenv(1)的输出相同,唯一不同的地方是”_“环境变量(执行diff <(env) <(printenv)命令查看);
总的来讲 printenv(1)和 env(1)在环境变量打印方面是类似的。但是在其他方面,比如功能上,env(1)主要用于设置环境变量并运行指定的命令命令,而 printenv(1)是为了打印环境变量;
而 set 是一个 Shell 的内建命令,与 Shell 有关,用于设置 Shell 的属性;