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

相关推荐
java_logo15 分钟前
轻量AI接口网关一键部署|calciumion/new-api Windows/Linux Docker 部署全教程
linux·人工智能·windows·one api·calciumion·ai网关部署·one api 部署
原来是猿17 分钟前
Linux - 【理解进程组、会话与作业控制】
linux·运维·服务器
怀旧,34 分钟前
【Linux网络编程】1. 网络基础概念
linux·网络
怀旧,1 小时前
【Linux网络编程】5. 应用层协议 HTTP
linux·网络·http
SurpriseDPD1 小时前
Linux 内核基础知识:READ_ONCE、内存屏障与指令重排
linux·系统架构
D4c-lovetrain1 小时前
Linux个人心得29(深入理解K8S Pod优先级与驱逐机制:从原理到实战踩坑)
linux·运维·kubernetes
小吴伴学者2 小时前
Linux RX报文处理全流程解析
linux
小侯不躺平.2 小时前
C++ Boost库【2】 --stringalgo字符串算法
linux·c++·算法
夏乌_Wx2 小时前
计算机网络实践项目 | 云相册(文件互传与管理系统)
linux·计算机网络