CRLF导致shell脚本报错


问题出现

开发的时候在Windows环境中打包了一个rpm包,放到CentOS去执行的时候,当运行start.sh文件的时候,一直报错 “No such file or directory”。

问题原因

Linux和Windows文本文件的行结束标志不同。在Linux中,文本文件用”/n”表示回车换行,而Windows用”/r/n”表示回车换行。
有时候在Windows编写shell脚本时需要注意这个,否则shell脚本会报”No such file or directory”或”command not found line x”之类的错误。

解决办法

  1. 在CentOS中,直接使用vi编辑器重新编写shell脚本
  2. 使用dos2unix工具将DOS格式文本文件转换成Unix格式或Linux格式

文章作者: niww
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 niww !
 上一篇
Oracle中实现ID自增 Oracle中实现ID自增
一、自增列自增列是数据库中值随插入的每个行自动增加的一列。它最常用于主键或 ID 字段,这样每次增加一行时,不用指该字段的值,它就会自动增加,而且是唯一的。 当在 MySQL 中定义列时,我们可以指定一个名为 AUTO_INCREMENT
2020-03-23
下一篇 
Keycloak配置 Keycloak配置
Keycloak切换MySQL数据库Keycloak默认使用嵌入式关系数据库H2,真实生产环境肯定是不符合要求的,在其官方文档中有这么一段话: We highly recommend that you replace it with a
  目录