/bin/bash^M: 坏的解释器: 没有那个文件或目录

在windows 下编辑的shell 脚本在linux下运行时,报“没有这个文件或目录”,原因在于 两个系统的换行符不一致导致。

解决方法:

使用在终端输入sed -i ‘s/\r$//‘ make-all-linux-project.sh即可

其中make-all-linux-project.sh为我的文件名,这里改成自己需要的即可

原因:

这个文件在Windows 下编辑过,在Windows下每一行结尾是\n\r,而Linux下则是\n

sed -i ‘s/\r$//‘ make-all-linux-project.sh 会把make-all-linux-project.sh中的行尾的\r替换为空白

时间: 2024-08-06 21:11:03

/bin/bash^M: 坏的解释器: 没有那个文件或目录的相关文章

/bin/bash^M: 坏的解释器: 没有那个文件或目录(bad interpreter: No such file or directory)

在Linux下编译cocos2d-x运行脚本的时候出现"/bin/bash^M: 坏的解释器: 没有那个文件或目录(bad interpreter: No such file or directory)"这样的错误如下图. 解决方法: 使用在终端输入sed -i 's/\r$//' make-all-linux-project.sh即可 其中make-all-linux-project.sh为我的文件名,这里改成自己需要的即可 原因: 这个文件在Windows 下编辑过,在Window

/bin/sh^M: 坏的解释器: 没有那个文件或目录

有时候编写脚本时会出现类似标题列出的错误,这个问题大多数是因为你的脚本文件在windows下编辑过. windows下,每一行的结尾是\n\r,而在linux下文件的结尾是\n,那么你在windows下编辑过的文件在linux下打开看的时候每一行的结尾就会多出来一个字符\r,用cat -A urfile时你可以看到这个\r字符被显示为^M,这时候只需要删除这个字符就可以了. 可以使用命令sed -i 's/\r$//' urfile .

解决 linux下编译make文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 问题

PS背景:我在公司做sdk 的pc端开发,所以经常会在win下编译通过之后跑到linux下再运行一次已确保能支持多平台. 今儿在win下跑完一程序,然后放到linux下跑的时候,我用指令: [plain] view plain copy sudo ./build.sh 但是却没有任何反应.于是我换了指令,用 [plain] view plain copy chmod u+x build.sh ./build.sh 报错 "build.sh  /bin/bash^M: 坏的解释器:没有那个文件或目

linux下编译make文件报错“/bin/bash^M: 坏的解释器,使用grep快速定位代码位置

一.linux下编译make文件报错"/bin/bash^M: 坏的解释器 参考文章:http://blog.csdn.net/liuqiyao_01/article/details/41542101#comments 自己测试的结果: [1]使用windows 下的编辑工具 新建文件doc2unix.sh #!/usr/bin/env bash # test PID=$(ps -aef | grep nginx | grep -v grep | grep master |awk '{print

解决 linux下编译make文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 问题

PS背景:我在公司做sdk 的pc端开发,所以经常会在win下编译通过之后跑到linux下再运行一次已确保能支持多平台. 今儿在win下跑完一程序,然后放到linux下跑的时候,我用指令: sudo ./build.sh 但是却没有任何反应.于是我换了指令,用 chmod u+x build.sh ./build.sh 报错 "build.sh  /bin/bash^M: 坏的解释器:没有那个文件或目录". 以前遇到这个问题,换了几种编译方法就解决了,单这次还是不行,于是又换:bash

/bin/bash^M:损坏的解释器: 没有那个文件或目录

由于在Windows下换行是\n\r,在Linux下打开多了\r,所以需要删除.删除命令 :sed -i 's/\r$//' filename -i插入 s替代模式 \r$表示任何以\r结束的字符 整句意思是把以\r结束的字符换成空白 参考: bash: ./t.sh:/bin/bash^M:损坏的解释器: 没有那个文件或目录 Error处理:/bin/bash^M: 坏的解释器: 没有该文件或目录(bad interpreter: No such file or directory)

bin/sh^M:损坏的解释器: 没有那个文件或目录

脚本文件保存时使用了DOS格式,用DOS2UNIX转为UNIX格式,也可以用vim打开,用:set ff=unix转换.不要在 Windows下编辑脚本文件,否则经常会遇到这种问题. 代码:sed -i 's/\r$//' server.sh 还 可以用 vim 打开文件,然后执行冒号命令: 代码: :set ff=unix:wq

脚本格式之殇——/bin/bash^M: 没有那个文件或目录

Linux下的bash脚本是不支持换行符\r的,如果运行从windows拷贝的文件,出现/bin/bash^M: 坏的解释器: 没有那个文件或目录这样的错误提示,不妨检查下文件格式是否有误. 如果是格式问题,有如下两种方法: 一.查找替换法 第一步: cat -A filename查看'\n及\r空白符,\n会显示为$,而\r会显示为^M`. 第二步: sed -i 's/\r$//'filename替换掉全部\r字符. 二.VIM重置文档格式 第一步: :set ff?查看文件格式,能看到fi

shell脚本执行后出现错误提示" /bin/bash^M: bad interpreter: No such file or dire"的解决办法

出现这种情况,通常都是在window下写好的shell脚本,拷贝到linux机器执行 才会出现 原因就是: windows下每一行的结尾是\n\r,而在linux下文件的结尾是\n 这样window写编辑的shell脚本拷贝到linux下时 每一行的结尾就会多出来一个字符\r 这个\r字符会被显示为^M 所以就会出现错误提示" /bin/bash^M: bad interpreter: No such file or dire", 字面意思就是/bin/bash^M: 坏的解释器: 没