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

在我尝试用Ubuntu编译 FFmpeg源码的时候,需要写一个build_android.sh文件,当时我是在win10系统中编辑的,然后复制到虚拟机中,运行之后会直接报错:

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

错误: bash: ./build_android.sh:/bin/sh^M:解释器错误: 没有那个文件或目录

查找资料后发现原因:
1.dos / windows 和 unix / linux 换行格式编码问题导致,dos / windows  『\n\r 』表示换行 unix / linux  『\n』 表示换行

 2.在win下编辑的时候,换行结尾是\n\r , 而在linux下 是\n,所以才会有 多出来的\r

解决方法:

执行下面指令

sed -i 's/\r$//' build_android.sh

会把 build_android.sh 中的\r 替换成空白,再次编译,成功!

还有个小问题是执行自己编写的build_android.sh的时候,可能会出现一个权限问题,可以给文件添加可执行的属性:

chmod +x build_android.sh

猜你喜欢

转载自blog.csdn.net/gqg_guan/article/details/131292662
今日推荐