当前位置: 首页 > news >正文

-bash: ./uninstall.command: /bin/sh^M: 坏的解释器: 没有那个文件或目录

  • 终端报错:
-bash: ./uninstall.command: /bin/sh^M: 坏的解释器: 没有那个文件或目录
  • 原因:由于文件行尾符不匹配导致的。当脚本文件在Windows环境中创建或编辑后,行尾符为CRLF(即回车和换行,\r\n),而在Unix/Linux系统中,行尾符只使用LF(换行,\n)。^M字符是Windows风格的回车符在Unix/Linux中的显示方式

可以使用以下几种方法之一来转换文件的行尾符:

1、方法一:使用 dos2unix 工具
dos2unix 是一个专门用于将文本文件从DOS/Windows格式转换为Unix格式的工具。

  • 安装 dos2unix:在Debian/Ubuntu系统上,可以通过以下命令安装:
sudo apt-get install dos2unix
  • 在RedHat/CentOS系统上,可以使用:
sudo yum install dos2unix
  • macOS用户,可以使用Homebrew安装:
brew install dos2unix
  • 转换文件:安装完成后,使用以下命令转换您的脚本文件:
dos2unix xxx

2、方法二:使用 sed 命令
如果不想安装额外的软件,可以直接使用sed命令来移除多余的回车符:

sed -i 's/\r$//' xxx
  • 这里的 -i 选项表示直接在文件中进行替换,s/\r$// 表示查找每一行结尾的 \r 并删除它。

3、方法三:使用 trperl,可以使用tr或者perl来完成相同的操作:

  • 使用 tr
tr -d '\r' < ./uninstall.command > temp && mv temp xxx
  • 使用 perl
perl -pi -e 's/\r\n|\n/\r\n/g' xxx

4、方法四:使用文本编辑器

  • 也可以通过支持行尾符转换的文本编辑器(如VS Code、Sublime Text、Notepad++等)打开文件并手动转换行尾符格式。
http://www.lryc.cn/news/526303.html

相关文章:

  • 【Redis】Redis入门以及什么是分布式系统{Redis引入+分布式系统介绍}
  • C#高级:常用的扩展方法大全
  • Consul持久化配置报错1067---consul_start
  • 「 机器人 」扑翼飞行器控制策略浅谈
  • Qt信号与槽底层实现原理
  • QT QTableWidget控件 全面详解
  • Flutter_学习记录_基本组件的使用记录
  • 基于JAVA的微信点餐小程序设计与实现(LW+源码+讲解)
  • 计算机毕业设计hadoop+spark+hive民宿推荐系统 酒店推荐系统 民宿价格预测 酒店价格 预测 机器学习 深度学习 Python爬虫 HDFS集群
  • 亲测有效!解决PyCharm下PyEMD安装报错 ModuleNotFoundError: No module named ‘PyEMD‘
  • Gin 应用并注册 pprof
  • Jenkins 启动
  • 第20篇:Python 开发进阶:使用Django进行Web开发详解
  • 文献引用指南ChatGPT提示词分享
  • 程序代码篇---C++类.c\.h
  • @RabbitListener处理重试机制完成后的异常捕获
  • Mac 上管理本地 Go 版本
  • 低代码系统-产品架构案例介绍、得帆云(八)
  • 免费GPU算力,不花钱部署DeepSeek-R1
  • JavaEE:多线程进阶
  • 不只是mini-react第二节:实现最简fiber
  • C++实现设计模式---命令模式 (Command)
  • 设计模式的艺术-享元模式
  • Linux的权限和一些shell原理
  • 【Postgres_Python】使用python脚本批量创建和导入多个PG数据库
  • Ubuntu安装GitLab
  • 网络知识小科普--5
  • JavaScript学习记录23
  • VScode 开发 Springboot 程序
  • .git/hooks/post-merge 文件的作用