码迷,mamicode.com
首页 > Windows程序 > 详细

(原创)Windows下编译的Shell脚本不能再Linux中运行的解决办法

时间:2015-05-11 17:40:25      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

一、原理

Windows编译的文件和Linux编译的文件格式不太一样,导致在Linux运行Shell脚本的时候会提示:/bin/bash^M: bad interpreter: 没有那个文件或目录。

原因是这样的:

1、Windows编译的文件结束时(回车+换行)

2、Linux编译的文件结束时(换行)

技术分享           技术分享

这样导致了Windows编译的文件放在Linux中会有[noeol][dos]的Flag标示。

如果运行CAT命令可以更直观的看到两个不同操作系统产生的文件差异,Windows产生的shell脚本文件中多了一个^M

命令格式:cat -A filename
cat -A windows.sh
cat -A linux.sh

技术分享

二、解决办法

在Windows生成的脚本进入vim编译模式,输入“:set fileformat=unix #转换成unix格式”,回车后wq保存退出即可。

技术分享

现在可以用./Window.sh或者sh Window.sh在Linux中运行Shell脚本了,很神奇有木有^-^

大功告成~

 

(原创)Windows下编译的Shell脚本不能再Linux中运行的解决办法

标签:

原文地址:http://www.cnblogs.com/demonzyz/p/4494883.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!