大多数语言都有变量的命名约定,我在shell脚本中看到的最常见的样式是MY_VARIABLE=foo。这是约定还是仅适用于全局变量?那么脚本本地变量呢?

评论

我唯一知道的每个人都应该遵循的名称是所有大写名称都应该保留给shell。不要使用它们来避免意外破坏诸如PATH或HOME之类的重要内容,或者外壳将来可能保留的其他任何内容。

实际上,所有大写名称通常用于环境变量。一些变量(例如PATH)由外壳程序解释,而其他变量(例如LANGUAGE或PRINTER)则可以由其他程序解释,但是它们没有其他特殊之处。

“环境变量”确实是专有名称,我将在答案中包含它。

尽管不具权威性,但此Google指南有很好的建议:google.github.io/styleguide/shell.xml。它建议仅对常量和导出变量使用所有大写字母,对其他所有内容使用大写字母。就我个人而言,我喜欢为我的全球客户提供骆驼保护套,因为没有人推荐这样做,这降低了命名冲突的可能性。另外,我喜欢他们的阅读方式。

关于SO的类似问题:正确的Bash和shell脚本变量大写。

#1 楼

由操作系统,shell启动脚本或shell本身等引入的环境变量或shell变量通常都在CAPITALS中。

为了防止您自己的变量与这些变量冲突,它使用lower_case变量名是一个好习惯。

评论


lower_case下划线分隔还是驼峰式?

–加里特·霍尔(Garrett Hall)
2012年7月11日在20:55

@GarrettHall完全取决于您。一旦你拿起一根棍子。一致性比实际选择更重要。

– jw013
2012年7月11日在20:57

口味问题?我个人喜欢C样式的camelCase,因为它更短并且不使用难看的下划线。口味,风格...

–吉比
2012年7月11日在20:57

口味问题?我个人喜欢下划线分开,更易于阅读。

– janos
2012年7月12日在8:22

为了完整起见,环境变量不是常规的全大写shell变量名称的唯一类别-此规则也适用于内置函数(如PWD,PS4或BASH_SOURCE)。

–查尔斯·达菲(Charles Duffy)
2015年1月7日在23:49



#2 楼

是的,bash有完整的代码样式约定,包括变量名。例如,这是Google的Shell样式指南。

作为变量名的摘要,具体为: 。例如:my_variable_name

常量和环境变量名称:所有大写字母,用下划线分隔,在文件顶部声明。例如:MY_CONSTANT


评论


这些约定只是Google自己的开源项目的约定:尽管它们可能是很好的规则,但并不能适用于所有项目。

– smonff
17年2月4日在14:16

#3 楼

下划线似乎是最好的方法。
我可以自由选择以下几个原因,而不是camelCase:snake_case:


灵活:您可以使用大写和小写(例如MY_CONSTANTmy_variable);
一致:可以将数字分开以使数字更易读(例如1_000_000_000),并且许多编程语言都支持此功能;
通用:正则表达式\w处理诸如字母字符和数字([a-zA-Z0-9_])之类的下划线时很常见。