Bash脚本 - "/bin/bash^M: 坏的解释器: 没有那个文件或目录"

759

我正在使用这个教程学习bash脚本,以便自动化一些任务。
我使用putty连接到服务器。

脚本位于.../Documents/LOG中,内容如下:

#!/bin/bash
# My first script
echo "Hello World!"

我针对 读/写/执行权限 执行了以下操作

chmod 755 my_script

然后,当我输入./my_script时,我会得到标题中给出的错误。

有些类似的问题想要看到这些,所以我认为它们可能会对你有帮助:

$ which bash
/bin/bash

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/bin/mh

我尝试将当前目录添加到PATH,但这并不起作用…


我使用Notepad++在Windows中创建了文件,然后使用WinSCP将文件复制到服务器上。我知道这不是理想的做法。 - cartonn
1
看看我的回答,这很可能是问题所在。 - cowls
16
我投票支持重新开放这个问题,因为标题包含/bin/bash^M: bad interpreter: No such file or directory,让我通过谷歌搜索直接找到了解决方案。而“重复”问题没有。 - Jim Tough
顺便说一下 - 当我复制一个 .bat 文件并将扩展名更改为 .sh 时,我遇到了这个问题。我的计划是将批处理代码重写为 shell。创建一个新的 .sh 文件并粘贴我的代码就解决了问题。 - drake7
我在同时使用WSL2和运行Docker后端时遇到了这个问题。关闭Docker并执行wsl --shutdown,然后再次启动它可以解决这个问题。 - Nicolás de Ory
显示剩余2条评论
11个回答

0

我同时在Windows和Mac/Linux上进行开发,通过像在Windows中一样运行脚本来避免^M错误:

$ php ./my_script

无需更改行结尾。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接