【Ubuntu】【Shell】执行sh脚本报错“xxx.sh:/bin/bash^M:解释器错误: 没有那个文件或目录“

背景

在自己Ubuntu环境执行sh脚本,报错"xxx.sh:/bin/bash^M:解释器错误: 没有那个文件或目录",查了下是Ubuntu系统默认的shell是dash:

修改配置过下,变成bash

解决方案

在终端执行:

bash 复制代码
sudo dpkg-reconfigure dash

然后弹框对话框选择No

然后就大功告成了。

知识补充

Dash是本是bash的符号链接,鉴于bash太复杂,所以有人把bash从NetBSD移植到Linux并更名为dash(Debian Almquist Shell),并建议将/bin/sh指向它,以获得更快的脚本执行速度。

相关推荐
hj2862513 小时前
linux下一步学习内容
linux·运维
xier_ran4 小时前
【infra之路】Linux基础命令与系统排查
linux·运维·服务器
zh路西法4 小时前
【Linux 串口通信】基于 C++ 多线程的同步/异步串口实现
linux·运维·c++·python
c238564 小时前
linux基础2
linux·运维·服务器
子兮曰4 小时前
WSL 配 GPU 用 Docker 的折腾指南(2026 年版)
linux·前端·后端
vortex55 小时前
Linux 默认 SUID 可执行文件详解
linux·运维
2023自学中5 小时前
Linux虚拟机 CMakeLists.txt:x86 与 ARM 双架构编译脚本
linux·c语言·c++·嵌入式
爱就是恒久忍耐6 小时前
老Ubuntu安装podman 5.x版本
linux·ubuntu·podman
geshifei6 小时前
Sched_ext框架总览
linux·ebpf
Dlrb12116 小时前
Linux系统编程-进程及相关指令与函数
linux·进程·并发·进程状态·调度·进程控制指令·进程函数