原文链接
英文原文:https://google.github.io/styleguide/shellguide.html
中文原文:https://zh-google-styleguide.readthedocs.io/en/latest/google-shell-styleguide/
手抄笔记用于后续查阅。
文件拓展名
❕Tip |
可执行文件应该没有扩展名(强烈建议)或者使用.sh扩展名。库文件必须使用.sh作为扩展名,而且应该是不可执行的 |
平时脚本建议 chmod u+x script_name
给脚本添加执行权限,不用添加扩展名(Linux外编辑器可添加,如notepad++
编辑保存为.sh扩展名文件可以帮助检查语法错误)
注释
文件头
❕Tip |
每个文件的开头是其文件内容的描述。 |
每个文件必须包含一个顶层注释,对其内容进行简要概述。版权声明和作者信息是可选的
例如
#!/bin/bash
#
# 程序启动脚本
功能注释
❕Tip |
任何不是既明显又短的函数都必须被注释。任何函数无论其长短和复杂性都必须被注释。 |
所有的函数注释应该包含:
- 函数的描述
- 全局变量的使用和修改
- 使用的参数说明
- 返回值,而不是上一条命令运行后默认的推出状态
例如
#!/bin/bash
#
# 启动程序脚本
APP_NAME="Cluster_1"
###########################
# 程序启动函数
# 全局变量:
# APP_NAME:应用名称
# 参数:
# 无
# 返回值:
# 无
###########################
start(){
# TODO
}
实现部分的注释
❕Tip |
注释你代码中含有技巧、不明显、有趣的或者重要的部分。 |
针对某行复杂命令平时可以进行单行注释。
TODO注释
❕Tip |
使用TODO注释临时的、短期解决方案的、或者足够好但不够完美的代码。 |
如果在实现时候觉得代码有缺陷用TODO注释起来。
TODO注释应该包含全部大写的字符串TODO,接着是括号中你的用户名。冒号是可选的。最好在TODO条目之后加上bug或者ticket的序号。
例如
# TODO(曹曹曹老板来了):此处可能存在不匹配的未知场景错误(bug ###)
格式
缩进
❕Tip |
缩进两个空格,没有制表符。 |
这一点很重要,平时代码过程忌讳制表符缩进,统一使用两个空格。
行的长度和长字符串
❕Tip |
行的最大长度是80个字符。 |
循环
❕Tip |
请将; do,; t hen和while,for,if放在同一行。 |
循环结构尽量一次写完整再写循环体语句。
例如