在实际工作中运用shell程序时,总结的几个经常忽视的问题,如果不注意很可能导致一些麻烦事
判断用户的属性
,比如uid、gid,甚至是用户名谨慎对待路径
,绝对路径、相对路径不能混淆;而且一定要注意路径的切换,可能是主动的切换,也可能是无意间的切换——个人比较喜欢直接进入指定路径,退出时直接cd -
即可退出到原路径;也可以参考pushd
和popd
命令用户交互
——能不交互就不交互吧,鬼知道用户会输入什么;另一方面,加强正则表达式的学习,一般用来作输入边界测试很好用注意程序的可维护性
,能函数化的语句都函数化,天知道什么时候又要你再来维护这个程序- 一般的
帮助信息,错误信息和提示信息也都函数化吧
,在可能需要的地方就放上一个这么个函数,方便调试,也方便其他人使用 - 注意
对返回值进行判断
,一般调用了比较不太靠谱的函数都写个返回值判断,及时退出错误的运行 - 稍微复杂一点的脚本应该注意支持
回滚功能
,一般要重写、增删文件都应该先备份一下,如果执行失败及时恢复回来 - 有时可能需要写一些
辅助性的功能,比如清理环境,备份环境等的功能
- 实现程序的
选项和参数处理能力
,对所有有用的、没用的选项和参数都覆盖到 - 适量的注释
- shell中的变量是比较友好的,但有些情况下还是应该把
局部变量
区分出来(用local
声明局部变量);一般将只在函数中使用的变量声明为局部变量 - 有时会调用一些需要
额外安装的程序
,应该在脚本中检测以及提示下是否有安装软件包(安装依赖的一种体现) - …