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

偶然间发现的一个问题,我从别的地方传过来的脚本不能用,我以为是shell脚本头文件写错了,看了一下没有问题,我
cat test.sh > test2.sh出来第二个同样的脚本,也是不行,都有下面的提示报错
在这里插入图片描述
权限什么的已经是777权限了,这个提示报错显然也和权限以及脚本本身的内容没什么关系,我打开这个脚本,把里边的文字复制一下,尝试重新在linux系统上创建一个脚本,然后把文字粘贴进去,发现竟然可以了,我意识到虽然脚本命名没问题,但是格式可能有点问题,我对比了一下:
在这里插入图片描述
从别的地方弄过来的脚本格式多了"with CRLD line terminators"
这个是windows的锅
有时候windows里倒腾一下,结果把脚本文件弄成了dos文本格式,需要改为unix/linux文本格式
vim编辑器是可以识别dos格式的文件的,用vim编辑器打开这两个文件也可以在下方看出确实格式有区别
在这里插入图片描述
可以使用dos2unix test.sh的方式更改格式为unix格式然后就可以了
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42428671/article/details/111520956