printenv 命令用于安全查看环境变量值:直接跟变量名可查单个(如 printenv PATH),空格分隔可查多个,未定义变量静默忽略;它只查导出变量,不显示局部变量,比 echo $VAR 更适合脚本中判断变量是否存在。

在 Linux 系统中,printenv 命令可以直接查看指定环境变量的值,用法简单直接。
查看单个指定变量
只需在 printenv 后跟变量名(不加 $ 符号):
-
printenv PATH—— 显示PATH的值 -
printenv HOME—— 显示当前用户的家目录路径 -
printenv USER—— 显示当前登录用户名
查看多个指定变量
可以一次列出多个变量名,空格分隔:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
printenv PATH HOME SHELL—— 分别输出三者的值,每行一个 - 如果某个变量未定义,
printenv不会报错,也不会输出任何内容
与 echo $VAR 的区别
printenv VAR 和 echo $VAR 都能显示变量值,但有关键差异:
-
printenv只查环境变量(即已导出的变量),对 shell 局部变量无效 -
echo $VAR能显示局部变量和环境变量,但若变量为空或未设置,会输出空行或空白 -
printenv对不存在的变量静默忽略,更适合作为脚本中安全检查的工具
配合其他命令使用
常用组合提升实用性:
-
printenv | grep -i path—— 模糊查找含 "path" 的所有环境变量 -
printenv LANG—— 查看当前语言/编码设置,常用于排查终端乱码 - 在脚本中判断变量是否存在:
if [ -z "$(printenv MY_VAR)" ]; then echo "not set"; fi

















