补充说明
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'