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

本文介绍了一种常见问题,即从Windows系统复制到Linux系统的Shell脚本无法运行的情况。通过对比发现,脚本中存在withCRLDlineterminators格式问题,这导致了脚本在Linux环境下不可用。文章提供了具体的解决方案,包括如何使用vim编辑器检查脚本格式以及如何利用dos2unix工具转换脚本格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jinbao_x

谢谢你的认可

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值