shell编写规范

1.脚本开头部分应有脚本功能说明、参数使用说明、作者姓名、创建\修改日期、版本信息等

2.注意格式对齐,如所有的循环或者判断语句前后的语句进行对齐,以及case的选取完全

3.脚本开头执行时,执行如下语句,在执行的过程中若遇到了未定义的变量或者命令返回值为非零,将直接报错退出

# set -eu

# set -euo pipefail

 

4.建议将命令行的每个参数放在单引号、双引号中,特别是rm、mv等可能对生产现有数据造成修改的操作,建议使用垃圾箱策略:rm操作转意为mv操作,制定文件保存目录,以防回退,并定期清理

5.命令行中参数需要使用'*'、'?'通配符的,应依据最精确匹配原则,如能确定文件、目录名称的前缀、后缀、扩展名及其他可识别关键字的,需要在参数中包含该信息,如能确定文件、目录的长度应使用'?'通配符,不得使用'*'

6.给数值型变量赋值后,需要有手段保证变量的值为数值型,避免在后续的处理中出现异常。

count=`cat app.log|wc-l`
#count="simon"
isNumber() {
if [ "$1" -eq "$1" ];then true
else
echo "[$1] isn't a number" exit 1
fi
}

 

7.在判断条件中使用的变量,必须包含在双引号中

8.对文件进行打包备份时,必须使用相对路径进行打包,严禁将全路径打入tar包

9.使用ps命令筛选进程时,如能确定进程所属用户,必须在参数中指定用户名称,如其输出作为kill命令的输入,则必须指定进程所属用户

posted @ 2020-04-14 15:26  破仔  阅读(192)  评论(0编辑  收藏  举报