当前位置 : 主页 > 操作系统 > centos >

linux执行sh脚本报错:$’\r’: 未找到命令的完美解决方法

来源:互联网 收集:自由互联 发布时间:2023-07-29
这里是“linux执行sh脚本报错:$’\r’: 未找到命令的完美解决方法”的完整攻略。 问题描述 当我们在 Linux 系统执行一个 sh 脚本时,可能会遇到如下错误: bash: ./test.sh: /bin/bash^M: 坏的

这里是“linux执行sh脚本报错:$’\r’: 未找到命令的完美解决方法”的完整攻略。

问题描述

当我们在 Linux 系统执行一个 sh 脚本时,可能会遇到如下错误:

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

或者出现如下错误:

-bash: ./test.sh: /bin/bash: ^M: bad interpreter: No such file or directory

这是因为在 Windows 系统中编辑的文件,其行结尾符是”\r\n”,而在 Linux 系统中行结尾符是”\n”,因此在 Linux 系统执行这个脚本时会出现 $’\r’: 未找到命令 的错误。

解决方法 方法一:使用 vi 编辑器进行修改

使用vi编辑器,将脚本文件的行尾符从“\r\n”改为“\n”。

vi test.sh

进入vi后按下“ESC”键,输入如下命令:

:set fileformat=unix

保存并退出:

:wq
方法二:使用dos2unix命令转换文件格式

dos2unix是一个转换文本文件格式的命令,可以将 Windows 格式的文本文件转换为 Unix 格式的文本文件格式。

安装命令:

sudo apt-get install dos2unix

使用命令进行转换:

dos2unix test.sh
示例说明

假设有一个 sh 脚本文件 test.sh,在 Windows 系统中编辑的,执行此脚本时出现了:$’\r’: 未找到命令 的错误。

自由互联热门推荐:PDF电子发票识别软件,一键识别电子发票并导入到Excel中!10大顶级数据挖掘软件!人工智能的十大作用!

示例一:使用 vi 编辑器进行修改
  1. 使用命令将 test.sh 文件复制到 Linux 系统中:
scp test.sh user@remote:/path/to/dir
  1. 进入 Linux 系统,使用 vi 编辑器修改 test.sh 文件:
vi test.sh
  1. 输入如下命令,用于将脚本文件的行尾符从“\r\n”改为“\n”:
:set fileformat=unix
  1. 保存并退出 vi 编辑器:
:wq
  1. 执行修改后的 test.sh 文件即可。
示例二:使用dos2unix命令转换文件格式
  1. 使用命令将 test.sh 文件复制到 Linux 系统中:
scp test.sh user@remote:/path/to/dir
  1. 进入 Linux 系统,安装 dos2unix 命令:
sudo apt-get install dos2unix
  1. 使用 dos2unix 命令转换 test.sh 文件的格式:
dos2unix test.sh
  1. 执行转换后的 test.sh 文件即可。
总结

使用 vi 或 dos2unix 命令进行转换,可以避免执行 sh 脚本时出现 $’\r’: 未找到命令 的错误。

上一篇:CentOS 下yum安装mysql、jdk和tomcat的方法
下一篇:没有了
网友评论