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

相关推荐
运维栈记1 小时前
API Error: 400 Request body format invalid
linux·ai
小白兔奶糖ovo1 小时前
【Leetcode】231. 2的幂
linux·算法·leetcode
s_w.h2 小时前
【 linux 】动静态库的制作
linux·运维·服务器·算法·bash
顺风尿一寸2 小时前
深入Linux内核:mkdir系统调用的完整实现解析
linux
用户2367829801682 小时前
Linux free 命令深度解析:从内存监控到 OOM 排查的完整指南
linux
无足鸟ICT3 小时前
【RHCA+】boxes命令(艺术框)
linux
_Voosk3 小时前
FreeBSD 使用代理运行命令
linux·运维·freebsd
G_dou_3 小时前
Linux 搭建 Rust 开发环境:从 rustup 安装到 Cargo 镜像
linux·rust
bsauce4 小时前
【kernel exploit】CVE-2026-23271 perf_event竞态UAF漏洞-ROP提权
linux·linux内核·内核漏洞·内核漏洞利用
Hehuyi_In5 小时前
从优雅到爆烈 —— Linux全力回收内存的一生
linux·内核·内存·memory·回收