Bash编码约定

时间:2013-03-25 08:49:43

标签: bash

我正在努力学习一些Bash,以便有一天能够找到一份使用计算机的工作。

为了提高我的清晰度和弟子编写我的自学代码,我试图坚持一套一致的“指导原则”。

当我推出自己的“指引”时,我显然会问自己:我不应该使用既定标准吗?

我找不到一个这样的“权威”参考Bash,类似于其他语言的内容:

是否有关于Bash的类似文档的链接,有充分的理由被使用?

以下是我自己组合的东西......但我认为,特别是作为初学者,我应该使用专家编写的指南,而不是试图想出自己的指南,因为他们不会基于丰富的经验,洞察力,实用性,常见模式/反模式的知识等。

你可能会对这些文件的有效性提出异议,但某些人必须喜欢这些文件,因为网上有如上所述的那些突出的例子。< / p>


################################################################################    
# Coding conventions                                                                
#                                                                                   
# - Prefer lines of 80 characters of length or less                                 
#                                                                                   
# - Perform arithmetic operations and numeric comparisons within "(( ))" blocks     
#   e.g. if ((42<=24+24)), ((3**3==27))                                             
#                                                                                   
# - Reference variables by name, not expansion, within arithmetic evaluation        
#   e.g. ((i++)) rather than (($i++)), ((v+=42)) rathern than v=$(($v+42))          
#                                                                                   
# - Prefer "[[" to "[" for conditional expressions                                  
#                                                                                   
# - Prefer "[[ $s ]]" to "[[ -n $s ]]" when checking for empty strings              
#                                                                                   
# - Document each function with at least a summary sentence. This should not        
#   exceed the preferred line length, be written in third person, end with a        
#   period and concisely describe the general utility of the function   
#
# ...
# ...
# ...
#            
################################################################################    

2 个答案:

答案 0 :(得分:10)

我的shell脚本标准

  1. 更喜欢可移植性,但不要牺牲安全性和空白意识。
  2. 首选内置命令。
  3. 但是,使用快速外部命令来处理非常大的输入。
  4. 避免不必要的子壳和管道。
  5. 不要预先优化。
  6. 了解引用规则。然后,使用引号。
  7. 使用功能提高可读性和控制范围。
  8. 不要给脚本添加愚蠢的文件扩展名。
  9. 不检查目录是否有效,切勿更改目录。
  10. Eschew hobgoblins
  11.   

    愚蠢的一致性是小脑袋的大人物,崇拜着   小政治家,哲学家和神职人员。

         

    - Ralph Waldo Emerson

    何时忽略可移植性规则

    1. 适当时-execdir使用find
    2. 当工具集允许避免在空白处意外分词时使用null分隔符。
    3. 了解所有的glob扩展并使用它们。
    4. 如果您的目标系统都有BASH,请不要向后弯曲为POSIXLY_STRICT。
    5. 此处使用字符串。

答案 1 :(得分:10)

像往常一样谷歌是你的朋友。如果是谷歌:https://google.github.io/styleguide/shell.xml

,我遇到的最好的bash风格指南

此处还有来自Chromium项目的一些额外建议:http://www.chromium.org/chromium-os/shell-style-guidelines

对于学习bash,Apple Developer Shell Scripting入门非常出色:https://developer.apple.com/library/mac/documentation/opensource/conceptual/shellscripting/Introduction/Introduction.html

使用bash的样式指南是非常明智的,因为它充满了技巧和意外且难以诊断的怪癖。至少如果你一直遵循相同的风格,你应该只为每个技巧一次。