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

这里是“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': 未找到命令 的错误。

示例一:使用 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': 未找到命令 的错误。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux执行sh脚本报错:$’\r’: 未找到命令的完美解决方法 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • [Linux] PHP程序员玩转Linux系列-nginx初学者引导

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转Linux系列-备份还原MySQL 5.PHP程序员玩转Linux系列-自动备份与SVN 6.PHP程序员玩转Linux系列-Linux和Windows安装ngi…

    Linux 2023年4月13日
    00
  • 在Linux下编译C或C++程序的教程

    在Linux下编译C或C++程序的教程 为了在Linux下编译C或C++程序,需要安装对应的编译器和开发环境。我们以Ubuntu为例,以下为详细步骤: 安装编译器和开发环境 在终端中输入以下命令,即可安装gcc编译器和g++编译器,以及C/C++开发环境: sudo apt-get update sudo apt-get install build-esse…

    Linux 2023年5月14日
    00
  • 在CentOS中安装和配置Xen虚拟机的教程

    以下是CentOS中安装和配置Xen虚拟机的教程: 准备工作 在开始安装和配置Xen虚拟机之前,需要先确保系统满足以下条件: 系统版本为CentOS 7.x CPU支持虚拟化技术 系统中已经安装了yum 安装Xen 在CentOS 7.x中,默认情况下没有安装Xen虚拟化软件,需要手动安装。安装过程如下: 在终端中执行以下命令,安装Xen相关的软件包: su…

    Linux 2023年5月24日
    00
  • Linux下nohup日志输出过大问题解决方案

    转载自:http://blog.csdn.net/shawnhu007/article/details/50971084  最近在一hadoop测试集群运行一个spark streaming程序,然后使用nohup ./execute.sh & 执行让程序后台运行,才几天日志就上G了,如果有问题想要查看日志,显然打开文件是一件很麻烦的事,于是我想办法…

    Linux 2023年4月16日
    00
  • 如何在Linux操作系统下安装Apache服务的方法实例详解

    以下是“如何在Linux操作系统下安装Apache服务的方法实例详解”的完整使用攻略,包含两个示例说明。 步骤 更新软件包列表: 在终端中输入以下命令: bash sudo apt-get update 安装Apache: 在终端中输入以下命令: bash sudo apt-get install apache2 启动Apache服务: 在终端中输入以下命令…

    Linux 2023年5月12日
    00
  • Linux select多路复用介绍(转) 转载:http://www.cnblogs.com/Anker/archive/2013/08/14/3258674.html 1、基本概念

    1、基本概念   IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合:   (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。   (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。   (3)如果一个TCP服务器既要处理监听套接口,又要处理已连接套…

    Linux 2023年4月13日
    00
  • Linux 基本命令(PuTTy 操作)

    1.使用PuTTy连接Linux 2.root用户和普通用户切换   3.系统命令 q:退出  date users  who  reboot: 重启当前操作的Linux系统  man  shutdown :系统关机  poweroff:关闭系统加切断电源  wget:从指定url下载文件  ps  top  free  kill:删除执行的程序或工作 if…

    Linux 2023年4月11日
    00
  • [Linux] Nginx响应压缩gzip

    压缩和解压缩 1.本节介绍如何配置响应的压缩或解压缩以及发送压缩文件。 gzip on; 2.NGINX仅使用MIME类型text / html压缩响应 gzip_types text/plain application/xml;//指定压缩媒体类型 3.指定响应压缩的最小长度 gzip_min_length 1000; 4.gzip_proxied指令具有…

    Linux 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部