在 linux 中,echo 命令打印变量值需用 $变量名 或 ${变量名} 实现展开;单引号禁止展开,双引号允许展开;拼接输出建议用双引号并注意花括号消歧义;${var:-default} 可处理未设置或空值情况。

在 Linux 中,echo 命令打印变量值的关键是正确引用变量名,并注意是否需要展开(即取值)。
直接打印变量值(推荐方式)
使用 $变量名 或 ${变量名} 让 shell 展开变量:
-
echo $PATH—— 打印环境变量 PATH 的当前值 -
echo ${HOME}—— 效果同$HOME,但花括号有助于避免歧义(如${USER}name) -
myvar="Hello World"; echo $myvar—— 先赋值再打印,输出Hello World
避免常见错误:引号的影响
单引号会禁止变量展开,双引号允许展开:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
-
echo '$myvar'→ 字面输出$myvar(不展开) -
echo "$myvar"→ 正确输出变量内容(如Hello World) -
echo $myvar(无引号)→ 也能展开,但若值含空格或特殊字符,可能被 word-splitting 影响,建议优先用双引号
打印变量名 + 值(组合输出)
可将文本和变量拼接,用双引号包裹:
echo "The value is: $myvar"echo "Home directory: $HOME"- 若变量名后紧跟字母/数字,必须用花括号:
echo "User${UID}info"(否则会被当作变量$UIDinfo)
检查变量是否存在或为空
echo 本身不判断,但可配合测试:
-
echo ${myvar:-"not set"}—— 若myvar未设置或为空,输出not set -
echo ${myvar:+"set"}—— 若已设置且非空,才输出set - 单独执行
echo $myvar输出为空,不一定代表未定义,可能是空字符串,可用declare -p myvar确认










