描述命名方法“MyVariable”(相对于“myVariable”)的术语是什么?

tim*_*rer 4 bash terminology javascript

JavaScript 中的变量和过程通常通过“camelCase”命名方法命名,如下所示:

  • 我的变量

表达式中作为数据结构名称或名称一部分的唯一或非唯一但第一个字母的任何字母都是小写的。
相反,根据我的经验,将名称的唯一或所有表达式的所有开头字母大写是有些常见的:

  • 我的变量

用什么术语来描述 Bash 中常见的数据结构命名方法?

小智 16

此命名约定称为 PascalCase,或 Upper Camel Case 或 StudlyCase。维基百科有一个命名约定列表。

不过,我还没有听说过 Bash 有这样的约定。似乎更加豁达了。我所知道的 Bash 的唯一约定是对常量使用大写的单词。这个答案谈到了这一点。TL;DR:选择一个约定并坚持下去。

  • 小心所有大写:它们可能与现有变量(或内部变量)发生冲突。据我所知,混合使用大写和小写可确保您不会与现有的公共变​​量(TERM、LINES 等)发生冲突 (5认同)
  • 我在 Bash 中看到的大部分内容都是 snake_case。 (4认同)

Adm*_*Bee 12

您所描述的有时称为PascalCase - 但 AFAIK 对这些排版书写约定没有“清晰”的定义。

至于Bash变量的命名,不知道用PascalCase是不是真的那么普遍。我知道的唯一“硬”建议是不要使用所有大写的变量名称,除非您想将这样的变量导出到环境变量(此处StackOverflow上都有很多关于该主题的问题)。原因是(特别是)在 Bash 中,关键的环境变量(例如PATH全大写),并且您将希望避免与脚本的意外同名变量发生冲突/取代这些变量。由于 shell 区分大小写,因此对“普通”变量使用小写或混合大小写名称有助于避免此问题。

但是请注意,如果您为其他 shell 编写脚本,这并不容易。正如@StéphaneChazelas 所指出的,例如,在and 中有具有特殊含义的全小写变量,因此通常建议您阅读 shell 的文档。对于,和,使用(在许多 Linux 发行版中也可作为独立程序使用)检查您的脚本会很有帮助,因为它还可以查找(一些)这些潜在的名称冲突。zshcshshbashkshshellcheck

  • @ilkkachu,是的,非常真实。我只是指出所有小写变量不限于`zsh`,也不限于`$path`。在 `zsh` 中,它是数组变量的约定。在 `csh` 中,有一些小写的特殊标量,就像用于选项的标量一样。`bash` 曾经有类似的选项变量。那就是被转换为`shopt` 选项的那些(并解释了,尽管这并不能证明这两组选项的废话是正确的)。 (2认同)