windows打包脚本出现binsh^M:坏的解释器:没有那个⽂件或⽬
脚本发生错误怎么办1.错误描述
我在Windows 10 系统下打包dolphinscheduler,上传到centos7解压之后,执⾏脚本报如下错误:
-bash: ./dolphinscheduler-daemon.sh: /bin/sh^M: 坏的解释器: 没有那个⽂件或⽬录
^M是什么东东,为什么会有^M
通过命令 cat -A filename 查看
好像每⾏都有这个,应该和换⾏符有关,查了⼀下确实有关
2.错误原因
这个问题⼤多数是因为脚本⽂件在windows下编辑过。在windows下,每⼀⾏的结尾是\n\r,⽽在linux下⽂件的结尾是\n,那么你在windows下编辑过的⽂件在linux下打开看的时候每⼀⾏的结尾就会多出来⼀个字符\r,⽤cat -A fileName时你可以看到这个\r字符被显⽰为^M,这时候只需要删除这个字符就可以了
3.解决⽅式
使⽤指令sed -i 's/\r$//' test.sh,上⾯的指令会把  test.sh 中的\r 替换成空⽩!