写shell脚本注意啦:
开头
要加#! bin/sh
他指明了我们默认的解释器
注释
this is 常识,就像一个README
主要有:
开头
脚本的参数
脚本的用途
脚本的作者、时间等,自己的大名,执行脚本记得写上,写英文,中文就显得水了。
函数的说明
注意事项
复杂的单行注释
须知
1、环境变量我们一般直接在开头定义,自定义的环境变量,别在/etc/profile里写,自己搞一个行不行。
2、if 、for条件循环语句记得把控好缩进哟
3、写脚本的时候记得用unix格式呀,编码就用utf-8,打log尽量用英文!
4、记得权限!!! 777直接解决问题!!!
5、要记日志呀,便于发现问题。最好有回显功能,看看命令返回结果和执行是否成功。
6、密码肯定不能硬编码,不然就是找死! 切换root用户时,谨慎操作。sudo su谨慎。
7、记得备份!!!服务器上的文件,特别是root用户下的文件,时刻记得bak呀。
8、脚本中调脚本时,远程执行脚本时,看不到echo的哦。
9、路径肯定就是全路径!!谁去用绝对路径有坑。。。
10、使用文件或者创建某个目录前,求求自己想 -d、-f判断一下存在不存在。
11、执行一次脚本,可能又执行一次,那么系统中已经存在的文件、目录,rm一下;已经写进去的文件内容 sed -i 一下,总不能写100次一样的内容的。丢人
12、备份文件、日志文件,加个时间戳呗,加个ip号呗
13、变量,咱就用${bianliang},虽然不加括号也可以
14、代码能简单就简单点,别秀操作,好好地不写,加什么管道符|的。
15、有些公用的路径啊 pid呀 ip呀就用临时变量接收,别定义几次,烦不烦的啦。
16、远程部署的时候需要获取所有ip或者其他东西,ip就专门弄个配置文件,想咋改就咋改。难道开发、测试、生产搞三份脚本?