【问题标题】:/bin/bash^M: bad interpreter: No such file or directory/bin/bash^M:错误的解释器:没有这样的文件或目录
【发布时间】:2019-10-12 09:25:36
【问题描述】:

我正面临 /bin/bash^M:错误的解释器:没有这样的文件或目录 问题,我已经从这个堆栈流答案中得到了解决方案

-bash: ./my_script: /bin/bash^M: bad interpreter: No such file or directory

效果很好。

我的问题是每次我重新启动我的 ubuntu 机器时,我都必须重做所有事情 那就是我执行 dos2unix -k -o 文件名 每次我启动我的系统。

有什么办法可以只做一次吗?

请注意:我必须创建一个新问题,因为由于声誉较低,我无法在现有问题中提出问题或发表评论

【问题讨论】:

  • 也许您正在运行一个不将更改保存到磁盘的虚拟机?
  • 您不需要多次执行此操作,这似乎表明文件正在被重写。它是从遥控器复制的还是什么?
  • 文件的行尾在重新启动后发生变化是不正常的,因此您的环境中一定存在异常情况。你能在你的设置上再扩展一点吗?脚本是在网络共享上,还是在使用带有主机操作系统的共享目录的 VM?脚本是否正在被 Windows 中的某些东西编辑?

标签: linux bash ubuntu


【解决方案1】:

bash 脚本的第一行应该是 Shebang (#!/bin/bash)。

我看到错误提示:/bin/bash 但是应该改为:#!/bin/bash

然后运行:

$ dos2unix my_script

这会将所有行终止符从 \r\n (Windows) 更改为 \n (Linux),这将修改原来的 my_script 文件,因此即使在重新启动后它也会保留。

【讨论】:

  • OP 已经提到他运行dos2unix 来修复可执行文件。
【解决方案2】:

这是从使用 Microsoft OS 机器(可能是虚拟机?)如 Windows 或 DOS 保存的文件运行 bash 脚本的一个非常常见的问题。

所以您知道解决问题的方法。

现在您应该防止每次登录时再次出现问题。确定文件是如何被其他资源生成/复制/损坏的。像.bash_profile 脚本或crontab 脚本或任何其他管理守护进程。

【讨论】:

猜你喜欢
  • 2014-05-30
  • 2012-12-22
  • 1970-01-01
  • 2014-10-24
  • 1970-01-01
  • 2014-11-23
  • 2018-05-29
  • 1970-01-01
相关资源
最近更新 更多