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

-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.kler.cn/a/517505.html

相关文章:

  • Chameleon(变色龙) 跨平台编译C文件,并一次性生成多个平台的可执行文件
  • Spring Boot 自动配置
  • 基于Docker的Spark分布式集群
  • 最新最详细的配置Node.js环境教程
  • 詳細講一下RN(React Native)中的列表組件FlatList和SessionList
  • 在 Windows 系统上,将 Ubuntu 从 C 盘 迁移到 D 盘
  • Kotlin泛型学习篇
  • 机器学习-线性回归(参数估计之经验风险最小化)
  • Hive之加载csv格式数据到hive
  • 设计模式的艺术-命令模式
  • 嵌入式知识点总结 ARM体系与架构 专题提升(四)-编程
  • 【Java】阿里云OSS上传、删除文件
  • git基础使用命令
  • YOLOv10-1.1部分代码阅读笔记-val.py
  • 《罗宾逊-旅途VR》Build2108907官方学习版
  • Oracle 机器宕机之后启动数据库
  • 大数据,Hadoop,HDFS的简单介绍
  • 从根源分析,调试,定位和解决MacOS ld: unsupported tapi file type ‘!tapi-tbd‘ in YAML file
  • Leecode刷题C语言之购买水果需要的最小金币数
  • 【实践】Python实现气象数据分析与可视化
  • Ubuntu 安装 QGIS LTR 3.34
  • SVN客户端使用手册
  • 逐笔成交逐笔委托Level2高频数据下载和分析:20250124
  • 计算机视觉算法实战——图像生成
  • Cloudpods是一个开源的Golang实现的云原生的融合多云/混合云的云平台,也就是一个“云上之云”。
  • 【python】subprocess.Popen执行adb shell指令进入linux系统后连续使用指令,出现cmd窗口阻塞问题