Linux 命令速查
Shell内建 man printenv

printenv

打印环境变量的值,或列出全部环境变量。

返回

补充说明

printenv 是 GNU coreutils 中的小工具,用于输出环境变量。不带参数时列出当前进程的完整环境;给出变量名时只输出对应的值,变量不存在则返回非零退出码且不输出内容,因此适合在脚本里做条件判断。

它与 shell 内建 echo "$VAR" 的区别在于:printenv 是独立进程,只能看到已导出的环境变量,看不到当前 shell 的普通变量;同时它不会解释变量名中的特殊字符,行为更可预测。需要查看 shell 自身变量时应使用 set 或 declare -p。

-0 选项用 NUL 分隔输出,配合 xargs -0 可以安全处理值中包含换行或空格的情况。注意环境变量可能包含密码、令牌等敏感信息,输出到日志或终端前应确认环境安全。

语法

printenv [选项] [变量名...]

选项

  • -0, --null:以 NUL 而不是换行分隔输出
  • --help:显示帮助
  • --version:显示版本

实例

# 列出全部环境变量
printenv

# 查看单个变量的值
printenv HOME
printenv PATH

# 变量不存在时返回非零,可用于脚本判断
if printenv PROXY_URL >/dev/null; then
    echo "proxy configured"
fi

# 把 PATH 按冒号拆成多行查看
printenv PATH | tr ':' '\n'

# 安全处理含换行的变量值
printenv -0 | xargs -0 -n1 printf '%s\n'

参考链接