【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指向它,以获得更快的脚本执行速度。

相关推荐
爱吃香菜的初学者5 分钟前
十九.Linux——TCP协议(1)
linux·网络·tcp/ip
Zevalin爱灰灰9 分钟前
Linux入门第二部分(ARM裸机篇) 第三章 汇编LED驱动实验
linux·汇编·arm开发
EVEN-091319 分钟前
Linux-IPC进程间通信
linux·运维·服务器
多弗朗皮卡丘28 分钟前
Linux 进程信号
linux·运维·服务器
^乘风破浪^28 分钟前
Kali配置i3wm教程1
linux·kali·i3wm
qeen8728 分钟前
【Linux】动静态库的链接与加载过程
linux·运维·系统编程
重生之小比特1 小时前
【Linux系统】17 库制作与原理(上)
linux·运维·服务器
wzg20162 小时前
ubuntu 离线安装 docker-compose
linux·ubuntu·docker
行走的陀螺仪2 小时前
Claude Code 从入门到实战(三):Hooks、Skills、SubAgents 高级扩展
linux·编辑器·vim
Brilliantwxx2 小时前
【STM32】 内部 Flash 的 HAL 库函数详解与自定义封装实战
linux·服务器·网络