【Linux】.sh 脚本运行异常:/bin/bash^M: bad interpreter: No such file or directory 的解决办法

image.png

-bash: ./lint.sh: /bin/bash^M: bad interpreter: No such file or directory
 


这个原因大多是因为在 windows 下编辑的 bash 脚本的编码格式不兼容 Linux 系统导致的。

解决办法如下:

1. 在windows下转换: 
   利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行。转换方式如下(UltraEdit):File-->Conversions-->DOS->UNIX即可。 

   PHPStorm 下自动转换成 dos编码:File->Settings->Editor->Code Style->Line Separator->下拉框选择“UNIX and OS X(\n)”即可。


2. 也可在Linux中转换: 
   ①.首先要确保文件有可执行权限 
   #sh>chmod a+x filename


   ②.然后修改文件格式 
   #sh>vi filename 
   利用如下命令查看文件格式 
   :set ff 或 :set fileformat 
   可以看到如下信息 

image.png  

   fileformat=dos 或 fileformat=unix 


   利用如下命令修改文件格式 
   :set ff=unix 或 :set fileformat=unix 
   

   :wq (存盘退出) 
   最后再执行文件 
   #sh>./filename

接下来再使用就没问题了。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.5.2 Zero

Copyright liuyang1.com. 转载文章,请注明出处。谢谢!