在 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/