在 Shell 中,我们常用 echo
来打印变量的值,比如打印用户名、当前目录等。但你知道吗?打印变量值也有两种写法,一种是“完整写法”,一种是“简写”,初学者经常在这两者之间踩坑。
今天我们就来深入剖析——哪种写法更安全?哪种更推荐?
🔢 两种写法对比
✅ 1. 简写:$var
name="Linux"
echo $name
🔍 输出结果:
Linux
✅ 简单直接,变量名后面没有其他字符时使用没问题。
⚠️ 但如果变量后紧跟文字,就出问题了:
echo $name123
🔍 输出结果:
(空行或错误值)
❌ Bash 会尝试查找变量
name123
,而不是我们想要的name
。
✅ 2. 完整写法:${var}
echo ${name}
🔍 输出结果:
Linux
✅ 使用大括号明确变量名的边界,哪怕后面有其他字符也不会出错。
比如:
echo "${name}123"
🔍 输出结果:
Linux123
完美!
🛡️ 总结对比
写法 | 语法形式 | 是否推荐 | 特点说明 |
---|---|---|---|
$var |
简写 | ✅ 可用 | 简洁,变量后不能直接跟字母或数字 |
${var} |
完整写法 | ✅ 强烈推荐 | 更安全、更明确,推荐养成习惯 |
🧨 常见误区解析
❌ 误区:echo $var123
会输出 $var + 123
?
不对!它会尝试输出名为 var123
的变量,如果没有定义,就会输出空。
正确写法应该是:
echo "${var}123"
🧵 实战建议
在写 Shell 脚本时,如果你:
- 后面还要拼接字符串 👉 用
${var}
- 写函数或模板化脚本 👉 用
${var}
- 想避免出错、提高可读性 👉 用
${var}
!
养成“凡变量必加大括号”的习惯,将让你的代码更健壮!
📌 小结:
简写适合一眼能看清的情况,完整写法适用于一切情况。
如果你是 Shell 脚本的初学者,这一小步将大大减少未来调试的痛苦。
声明:本文为原创文章,版权归深谋之道所有,欢迎分享本文,转载请保留出处!