shell脚本报错

1、windows下写的sh脚本,在开发机上跑总是报错:

看起来像是路径变量被截断了,所以找不到了.png

解决:将可运行的脚本模板,复制一份副本,然后改掉里面的代码,即可运行;
将可运行的脚本,用ctrl+C复制到sublime中新建的sh文件中,不可运行;
根本原因:windows下文本换行是ctrl+LF,linux(unix)下认换行为LF,前者会掺入乱码。
成功的脚本格式-notpad++.png

报错的脚本格式.png

根本解决方法:将报错脚本用notpad++打开,编辑->文档格式转换->转为Unix(LF),如下:
脚本转为unix格式.png

转换后.png

之前没遇到这个问题的原因:之前也一直在windows,用sublime编辑脚本,但都是直接传到南天门(公司内部的数据研发平台),测试运行。推测原因是南天门有一道转换格式的过程~从南天门down脚本下来,与本地开发的脚本对比,发现符合推测。
sublime将文档转为unix方法:Preferences->settings->在User页加一行配置
Preferences->settings.png

User页加一行配置.png

2、shell脚本在linux系统上是白色,不是绿色

解决:chmod 755 xxxx.sh 转为可执行文件(权限)后,即可显示绿色

你可能感兴趣的:(shell脚本报错)