2015-08-13 44 views
0

我似乎有一个奇怪的问题,其解决方案可能已经很简单,而我只是失明。无法运行在Windows上创建的shell脚本

我的开发环境是Windows。我创建了一个部署档案文件,其中包含一个shell脚本文件(称为install.sh)。我SFTP发布此存档到Linux环境,解压缩,并尝试运行执行脚本(CHMOD后使其可执行文件),我得到这个错误:

语法错误:文件

我不意外结束没有注意到文件中的任何错误。我删除这个文件,创建一个新的install.sh,从我的Windows环境中拷贝确切的内容,再次chmod,再次运行它,这次它运行正常!

我不知道为什么它没有运行,我第一次解开它。任何帮助感谢!

回答

3

检查文件:

cat --show-nonprinting file 

从Windows/DOS删除回车:

tr -d "\r" <file> fixed_file 
+0

看起来像是回车导致它。但是我不能使用tr,我用它来代替:sed -i -e's/\ r // g'install.sh – starman1979

2

Linux和Windows使用线的不同终端(CL或CLRF),或者它是一个编码的问题。您应该检查运行sh和不运行之间的区别。