推荐的约定/编码风格
Recommended convention / coding style
我正在重构一些 unix shell 脚本
并在我们的代码中发现许多不一致和不同的风格
例如:
somevar="${item1},${item2}"
somevar=${item1}","${item2}
somevar="$item1,$item2"
是否有 unix shell 脚本的编码风格指南?或像 C++ 的 clang-format 这样的格式化程序
[编辑] 请注意,我不是在征求个人风格偏好或个人意见!我正在寻找行业标准文档、广泛使用的风格指南或流行的工具。
我曾在几家拥有自己的风格指南的公司工作过,但现在大多数公司都在使用 Google 的风格指南。如果您没有自己开发的风格指南,那么 Google 的很好,发布在这里:https://google.github.io/styleguide/shell.xml
我亲自使用 shell 检查插件 vim 检查我的 shell 脚本,但它可以在网络上和其他编辑器上使用。您可以使用它并在此处获取下载:https://www.shellcheck.net/
由于 word splitting 不会发生在变量赋值的上下文中,您可以使用:
somevar=${item1},${item2}
我个人比较喜欢用
somevar="${item1},${item2}"
这些引号并没有什么坏处,而且 - imo - 增加了可读性。
关于 ${var}
与 $var
。当变量名称可能包含下划线时,这很重要,例如 "$foo_bar"
。这是什么意思?变量 $foo
加上文字字符串 _bar
?还是扩展变量$foo_bar
?因此,我会使用 ${var}
来避免这种情况。
我正在重构一些 unix shell 脚本 并在我们的代码中发现许多不一致和不同的风格
例如:
somevar="${item1},${item2}"
somevar=${item1}","${item2}
somevar="$item1,$item2"
是否有 unix shell 脚本的编码风格指南?或像 C++ 的 clang-format 这样的格式化程序
[编辑] 请注意,我不是在征求个人风格偏好或个人意见!我正在寻找行业标准文档、广泛使用的风格指南或流行的工具。
我曾在几家拥有自己的风格指南的公司工作过,但现在大多数公司都在使用 Google 的风格指南。如果您没有自己开发的风格指南,那么 Google 的很好,发布在这里:https://google.github.io/styleguide/shell.xml
我亲自使用 shell 检查插件 vim 检查我的 shell 脚本,但它可以在网络上和其他编辑器上使用。您可以使用它并在此处获取下载:https://www.shellcheck.net/
由于 word splitting 不会发生在变量赋值的上下文中,您可以使用:
somevar=${item1},${item2}
我个人比较喜欢用
somevar="${item1},${item2}"
这些引号并没有什么坏处,而且 - imo - 增加了可读性。
关于 ${var}
与 $var
。当变量名称可能包含下划线时,这很重要,例如 "$foo_bar"
。这是什么意思?变量 $foo
加上文字字符串 _bar
?还是扩展变量$foo_bar
?因此,我会使用 ${var}
来避免这种情况。