linux运行sh脚本出现/r

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux运行sh脚本出现/r相关的知识,希望对你有一定的参考价值。

参考技术A 项目中要运行sh脚本。但是脚本的项目路径文件夹运行的时候 会报错,找不到文件夹。
发现执行的时候会默认在 sh脚本中添加/r 也就是回车键。

找了半天才想起来是文件格式不对。

在vim 下面执行 :set ff 查看当前文档的格式 是gos

需要将sh脚本改成unix格式的才能运行。

完美!

$‘ ‘: command not found的解决方法

问题说明

在Linux系统中,运行Shell脚本,出现了如下错误:

build.sh: line 1: $'\\r': command not found

出现这样的错误,是因为Shell脚本在Windows系统编写时,每行结尾是\\r\\n,而在Linux系统中行每行结尾是\\n,所以在Linux系统中运行脚本时,会认为\\r是一个字符,导致运行错误。

问题解决

  • 安装 dos2unix
centos系统:yum install -y dos2unix

ubuntu系统:apt-get -y install dos2unix 
  • 格式转换
# dos2unix build.sh

出现以下字符,说明格式转换成功
dos2unix: converting file one-more.sh to Unix format ...

命令讲解

  • dos2unix

dos2unix是将Windows格式文件转换为Unix、Linux格式的实用命令

Windows格式文件的换行符为\\r\\n ,而Unix&Linux文件的换行符为\\n

dos2unix命令其实就是将文件中的\\r\\n 转换为\\n

命令语法:

dos2unix [options] [-c convmode] [-o file ...] [-n infile outfile ...]
  • unix2dos

而unix2dos则是和dos2unix互为孪生的一个命令

它是将Linux&Unix格式文件转换为Windows格式文件的命令

命令语法:

unix2dos [options] [-c convmode] [-o file ...] [-n infile outfile ...]

以上是关于linux运行sh脚本出现/r的主要内容,如果未能解决你的问题,请参考以下文章

在ubuntu的终端中运行脚本文件的问题

运行shell脚本报错```$'\r':command not found```

linux的expect脚本如何结束

运行shell命令

linux脚本运行失败

Linux systemd 自启动脚本无法正常运行(求助分析方向)