bash - 我们什么时候需要用大括号括住 shell 变量?

标签 bash shell syntax curly-braces variable-expansion

在 shell 脚本中,我们什么时候在扩展变量时使用 {}

例如,我看到了以下内容:

var=10        # Declare variable

echo "${var}" # One use of the variable
echo "$var"   # Another use of the variable

是否存在显着差异,还是只是风格?一个比另一个更受欢迎吗?

最佳答案

在这个特定的例子中,它没有区别。但是,如果您想扩展字符串中的变量 foo${} 中的 {} 很有用

"${foo}bar"

因为 "$foobar" 会扩展 foobar 标识的变量。

在以下情况下也无条件需要大括号:

  • 扩展数组元素,如 ${array[42]}
  • 使用参数扩展操作,如 ${filename%.*}(删除扩展名)
  • 将位置参数扩展到 9 以上:"$8 $9 ${10} ${11}"

在任何地方都这样做,而不仅仅是在可能有歧义的情况下,可以被认为是良好的编程习惯。这既是为了保持一致性,也是为了避免像 $foo_$bar.jpg 这样的意外,下划线成为变量名称的一部分在视觉上并不明显。

关于bash - 我们什么时候需要用大括号括住 shell 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34799754/

相关文章:

JavaScript 输入意外结束

php - MySQL PDO 查询语法错误?参数

linux - 如何自动创建和配置 VPS 服务器?

bash - URL 中的空格导致 wget 失败

android - 如何通过 ADB 杀死 android 中的持久系统进程?

linux - 使用shell脚本重命名文件

bash - 在 Bash 中重定向 stderr 和 stdout

c# - 对 BigIntegers 列表求和

python - 简单 Python 代码中的 Str 对象错误

bash - 奇怪的管道缓冲