Bash Shell提高脚本可读性

你希望尽可能提高脚本的可读性,以便于理解和日后维护。

解决方案

遵循以下最佳实践。

  • 按照 记录脚本脚本嵌入文档中的做法记录脚本。
  • 缩进并明智地使用垂直空白字符。
  • 使用有意义的变量名。
  • 使用函数并指定有意义的函数名。
  • 在少于 76 个字符左右的有意义的位置处断行。
  • 将最有意义的部分放在左边。

讨论

记录意图,而不是代码中的繁枝末节。如果遵循余下的要点,则代码应该会相当清晰。写代码时,编制提醒、提供数据布局示例或标题,记下脑子里想到的方方面面的细节。如果实现过程比较微妙或难懂,代码本身也要加以说明。

我们推荐缩进时使用 4 个空格作为一级,不要用制表符,尤其是别混用制表符和空格。这么做的原因有很多,通常是出于个人喜好或公司标准的缘故。无论你的编辑器(比例字体除外)或打印机如何设置,4 个空格始终就是 4 个空格 。这段缩进距离大到足以让你浏览脚本时一目了然,小到可以在不超出屏幕或打印页面右边界的情况下设置行内多级缩进。如果有续行,我们还建议再额外加上 2 个空格(或者根据需要调整数量),以便代码的清晰性达到最佳。

部分编辑器会自动将制表符替换成空格,有的设置 1 个制表符等于 4 个空格,有的设置 1 个制表符等于 8 个空格。

可以用垂直空白字符创建功能相似的代码块。当然,对函数也是如此。

使用有意义的变量名和函数名。唯一能接受 i 或x 这种写法的时候就是在 for 循环中。你也许觉得简短神秘的名称能节省眼前的时间、少敲键盘,但我们敢保证,当不得不修正或改动脚本时,你绝对会在某个地方搭进去 10 倍或 100 倍的时间。

对于比较长的行,选择在 76 个字符左右的位置处断行。没错,我们知道大多数屏幕(更准确地说,应该是终端程序)能处理的字符个数远超于此,但是 80 个字符宽度的纸张和屏幕仍是默认设置,而且在代码右侧留些空白绝对没什么坏处。不断往右边拖滚动条或看到屏幕上那些丑陋的折行,绝不是一件令人愉悦的事情,还容易让人分神。可别这么做。

但这条规则也有例外。在某些情况下,(可能通过 SSH)将生成的行发往别处时,断行会得不偿失。但大部分情况下,这么做是值得的。

要断行的话,试着将最有意义的部分放在左边:我们是从左往右阅读脚本代码的,这样续行才会更显眼。查找续行时也更容易识别。你觉得以下哪种写法更清晰?

# 不错
[ -n "$results" ] \
  && echo "Got a good result in $results" \
  || echo 'Got an empty result, something is wrong'

# 也挺好
[ -n "$results" ] && echo "Got a good result in $results" \
                  || echo 'Got an empty result, something is wrong'

# 尚可,但不理想
[ -n "$results" ] && echo "Got a good result in $results" \
  || echo 'Got an empty result, something is wrong'

# 不好
[ -n "$results" ] && echo "Got a good result in $results" || \
echo 'Got an empty result, something is wrong'

# 不好(行尾的\是可选的,但出于清晰性的考虑,此处建议使用)
[ -n "$results" ] && \
  echo "Got a good result in $results" || \
  echo 'Got an empty result, something is wrong'

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!