提高脚本的健壮性
set -u
如果使用一个未定义的变量,脚本将报错。
1 | [root@vm-101 ~]# cat a.sh |
set -e
脚本中有一个语句返回值为非0,脚本将退出。可以避免在脚本运行过程中,由一个错误导致后面雪崩式的错误。
1 | [root@vm-101 ~]# cat a.sh |
局部变量
bash脚本中,变量默认都是全局的,这样很方便,但是不够安全。尽量使用局部变量,避免全局变量带来的混乱问题。
定义局部变量的方法:local
定义功能清晰的函数
一个脚本太长,难免会造成维护困难,逻辑混乱。可以灵活使用函数,定义一些功能清晰的函数。可以使脚本看上去更简洁,便于维护,避免在更新升级过程中带入一些未知错误。
信号处理
在信号处理的章节,已经介绍过了。
保持原子性
把一些关联很紧密的事情写在一个事务中,保持他们的原子性。意思就是:要么全部成功,要么全部失败。
标准化返回值
不管是函数还是脚本,都需要标准化的返回值。
标准化参数处理
标准化的参数处理能让人更方便,准确地使用脚本,或者函数。使用者用得对,也能提高健壮性。
标准化帮助文档
理由同标准化参数处理,目的都是为了帮助使用者更好的使用。帮助他不容易出错。
代码审计
利用一些第三方工具,做代码审计。比如:ShellCheck
增加单元测试
比如:shunit2