linux系统中set、env、export关系

set 用来显示shell变量(包括环境变量、用户变量和函数名及其定义),同时可以设置shell选项来开启调试、变量扩展、路径扩展等开关
env 用来显示和设置环境变量
export 用来显示和设置导出到子shell的环境变量

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

set命令:

-x 打开调试回显示模式
-B 开启shell大括号扩展功能,默认选项
-u 在进行变量替换时对unset的变量进行错误提示
-v 为调试打开verbose模式
-- 把--选项后的参数依次赋值给位置参数$1、$2... 如果没有参数则位置参数被unset
- 和--选项功能相同,但同时关闭x和v选项功能

env命令用法:

用法:env [选项]... [-] [名称=值]... [命令 [参数]...]

Set each NAME to VALUE in the environment and run COMMAND.

必选参数对长短选项同时适用。
-i, --ignore-environment start with an empty environment
-0, --null end each output line with NUL, not newline
-u, --unset=NAME remove variable from the environment
--help 显示此帮助信息并退出
--version 显示版本信息并退出

单纯的 - 意味着 -i。如果没有命令,则打印环境环境变量。

相关推荐