格式化shell脚本
python开发小工具格式化shell脚本(.sh文件)
## 问题
开发环境为 win7, 测试环境和生产环境均为linux,经常出现这样的问题:
在开发环境下写的shell脚本文件,发布到测试环境和生产环境,就会出现兼容问题,无法运行。
分析
对比运行正常的shell脚本.sh文件,发现在win和linux下脚本文件的差异在于:
shell文件换行符为:0x0A 不能含有 0x0D
而在windows的编辑工具中,总是会把换行符保存为 “0D 0A”。
搞清楚原因后就容易解决了,只要把文件中的换行:"0D"全部删除即可。
不兼容的文件截图: 含有"0D 0A"
经过处理后的文件: 不含 “0D”
工具
用python开发一个小工具,用于批量对shell文件进行处理:
python shellfmt.py -fname=文件名或者目录
发布到 pypi
本工具已经发布到PYPI,直接安装即可使用。
安装:
pip install shellfmt
使用示例:
shellfmt --fname=F:\project\shell_format\test
正在处理:F:\project\shell_format\test\start_new_tecclass_nnsvr.sh...done!
正在处理:F:\project\shell_format\test\start_new_tecclass_nnsvr_dev.sh...done!
正在处理:F:\project\shell_format\test\start_pseg_svr.sh...done!
all done!