Bash 脚本和/bin/bash^M : bad interpreter: No such file or directory

标签 bash

这个问题在这里已经有了答案:





Are shell scripts sensitive to encoding and line endings?

(14 个回答)


4年前关闭。
社区在 9 个月前审查了是否重新打开此问题并将其关闭:

重复这个问题已经得到回答,不是唯一的,并且与另一个问题没有区别。





我正在通过本教程学习 bash scripts为我自动化一些任务。我正在使用腻子连接到服务器。

该脚本位于 .../Documents/LOG , 是:

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

我为 read/write/execute permissions 执行了以下操作
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 ,但这不起作用..

最佳答案

在终端中运行以下命令

sed -i -e 's/\r$//' scriptname.sh

然后尝试
./scriptname.sh

它应该工作。

关于Bash 脚本和/bin/bash^M : bad interpreter: No such file or directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70637865/

相关文章:

文件的正则表达式匹配并重命名+覆盖旧文件

linux - 将 "module"别名(调用 modulecmd)从 tcsh 适配到 bash

bash - shell 脚本中的连接和 'basename' 的使用

linux - 识别进程的资源使用情况 : CPU, 内存和 I/O

linux - 如何在第一行打印包含 "#!bin/bash"的文件名

regex - sed 在 Linux 中替换 ASCII 字符

regex - 如何使用 sed(或类似工具)删除两个 html 标签之间的所有行?

linux - 如何使用 sed 或 awk 将行分隔符更改为 CSV

bash - 将数字范围读入for循环

node.js - 如何使用通用规范或元配置生成 upstart 和 monit 配置文件?