shell 脚本和 makefile 的命名约定

Jam*_*ond 7 linux shell naming-conventions

我有一些存储共享变量的 makefile,例如 CC=gcc ,我应该如何命名它们?

候选人是:

common.mk
Make.common
Makefile.common
Run Code Online (Sandbox Code Playgroud)

..哪个更经典?有标准吗?

同样,我有一些 shell 脚本,我应该从以下选项中进行选择:

do_this_please.sh
do-this-please.sh
DoThisPlease.sh
doThisPlease.sh
Run Code Online (Sandbox Code Playgroud)

这些是否有普遍接受的“案例”和后缀?

flo*_*w2k 19

Google 的开源风格使用下划线作为分隔符: https: //google.github.io/styleguide/shellguide.html#s7.4-source-filenames

所以在你的情况下,它将是do_this_please.shdo_this_please使用这种风格。

  • 或者,“请这样做” (2认同)

小智 8

您所拥有的是将构建粘合在一起的各个部分。构建脚本、自动生成的配置、其他 makefile 包含的 makefile - 质疑这些东西应该如何命名是一个好主意。

最重要的是,保持一致

我见过很多通过 Makefile 包含的文件的 .mk 扩展名。然而,正如 Gyom 所说,这是一个非常主观的问题。

任何能让您选择的编辑器中的语法荧光笔满意的东西都可能是一个不错的选择。如果您所在的团队中每个人都使用不同的东西,请询问其他人。对我来说,用 .mk 扩展名命名 makefile include 对每个人来说都是正确的。使用 .sh 后缀命名 shell 脚本也有类似的帮助。

简而言之,使文件名显而易见,并尝试在尽可能多的编辑器/IDE 上进行语法突出显示。Makefile.common 可能不会这样做,common.mk 可能有更好的办法。


Jör*_*Süß 5

我会去的do_this_please.sh。这是我的推理:

  • 从可读性的角度来看,间距是更好的选择。这让我们远离了骆驼箱。

  • 破折号在大多数 shell 中具有特殊含义,因此漂亮打印词法分析器会在漂亮打印涉及您的文件之一的内容时拾取它并给出奇怪的可视化效果。你看上面的一个案例。

这留下了带下划线的版本。一些额外的赞成点:

  • 此约定与 Python 模块的模块名称 (cmp.PEP 8) 相同。python 中的模块将代码组合在一起。您的 shell 脚本也可以被视为这样的分组。
  • Python 使用者会立即了解您提供的功能的数量和范围。Python非常流行,它的寄宿起源于脚本,所以它的约定可能是一个很好的模板。