使用 ${var} 或 $var 之间的最佳实践是什么?

Nai*_*f21 1 bash

我知道${var}$var做同样的事情。我也知道您可以将大括号用于高级选项,例如${var:=word}${var#pattern}。它也解释here

但是我在一些 bash 脚本中看到以最简单的形式使用大括号:${var}有时我只看到这种表示法$var

有没有理由更喜欢这种语法而不是简单的,$var因为它做同样的事情?是为了便携吗?它是一种编码风格吗?

作为一名认真的开发人员,我应该使用哪种语法?

Mic*_*hrs 6

这是为了清楚起见。正如 arzyfex 所指出的,${foo}_bar和之间存在差异$foo_bar。总是使用大括号,你永远不会犯那个错误。另请注意,如果您希望引用多于一位的位置参数,则需要大括号,例如${11}.

  • 是否使用 `{...}` 是一个装饰问题(我个人认为在不需要时它会使脚本变得混乱),当需要它们而您忘记它们时,这是您在 _authoring_ 时会检测到的错误。相比之下,忘记变量周围的引号是一个错误,并且您并不总是在_创作_时检测到错误,而是在运行时您的用户。我发现当人们在不必要但忘记引用时费力地添加那些“{}”时,我感到很恼火。IOW,`rm ${file}` 是错误的,是使用`rm -- "$file"` 还是`rm -- "${file}"` 是一个装饰性的选择。 (2认同)