今天在写一个Java项目时,需要调用一个外部的shell脚本来完成一些额外的操作。

之前一切正常,但是在本次部署调用脚本的时候却一直报以下错误:

 [ ~]$ ./sync.sh
 -bash: ./sync.sh: /bin/sh^M: bad interpreter: No such file or directory

反复查看脚本没有发现问题,求教于google,最终发现居然是文件的格式错了。

使用vi命令编辑脚本,输入:set ff?发现文件是dos格式:

是了,因为之前一直在Linux上编写shell脚本所以一切正常,本次因为要提交到版本库将它加入到SVN后在windows操作了一把,导致换行符由\n变成了\r\n,Linux不能正确识别了。

既然如此,我们把它强制转换过来,还是使用vi命令,输入:set ff=unix,强制转换成unix格式,保存退出。

再次执行程序调用脚本,一切正常了!

你可能感兴趣的内容
0条评论

selfly

交流QQ群:32261424
Owner