Linux执行脚本报错:-bash: ./mylife.sh: /bin/sh^M: bad interpreter: Text file busy

这个错误信息 -bash: ./mylife.sh: /bin/sh^M: bad interpreter: Text file busy 实际上包含了两个主要问题,但“Text file busy”这部分通常不是真实的错误,可能是显示错误或者与之前的操作冲突。更常见的问题是前面的 /bin/sh^M,这里的 ^M 是一个回车符(Carriage Return, CR),它通常出现在 Windows 系统中,但在 Unix/Linux 系统中是不需要的。

这个问题通常发生在 Windows 系统上编辑的脚本文件被直接传输到 Linux 系统上执行时。Windows 系统使用 CRLF(回车加换行,\r\n)作为行结束符,而 Unix/Linux 系统只使用 LF(换行,\n)作为行结束符。

要解决这个问题,你可以使用 dos2unix 工具来转换文件,如果你还没有安装这个工具,你可以通过你的 Linux 发行版的包管理器来安装它。例如,在基于 Debian 的系统(如 Ubuntu)上,你可以使用以下命令安装:

sudo apt-get update 
sudo apt-get install dos2unix

然后,你可以使用 dos2unix 来转换你的脚本文件:

dos2unix mylife.sh

如果你没有 dos2unix 工具,你也可以使用 sed 命令来删除文件中的回车符:

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

注意:-i 选项会直接修改文件,如果你不确定,可以先不加 -i 选项运行命令来查看输出,确认无误后再加上 -i

完成这些步骤后,你的脚本文件应该可以在 Linux 系统上正常执行了。如果仍然出现权限问题,请确保你的脚本文件具有执行权限。你可以使用 chmod 命令来添加执行权限:

chmod +x mylife.sh

然后再次尝试执行脚本:

./mylife.sh
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值