记录Linux shell脚步中CRLF和LF问题

1.使用工具:nodePad++

2.问题:用nodePad++写完shell脚步后在执行机执行时,各种报错,未预期的符合,未正常的结尾等等.....

3.查找问题原因:

    (1)  cat  -v test.sh  ,查看脚步内容,发现回车的地方有^M;原来是换行符的问题

    (2)用nodePad++,打开文本,

              中文版查看方式 :  视图->显示符号->显示尾号;

              英文版查看方式 : 

  (3)问题根本原因: window上换行符为CRLF ,而Linux换行符为 LF。说人话就是,Windos上换行是 \r\n ,Linux上换行是\r

4.修改问题方法:

  (1) 将\r\n 替换为 \r

  (2)在Linux上使用vim 编辑该脚本文件,set ff =unix,将文件格式设置为unix

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 你可以使用以下命令将 shell 脚本CRLF 转换为 LF: ``` sed -i 's/\r//' your_script.sh ``` 该命令使用 sed 工具将所有的 \r 字符替换为空字符,从而将 CRLF 转换为 LF。注意,该命令将直接修改原始文件,所以请确保备份你的脚本文件以防止意外情况发生。 ### 回答2: Shell脚本是一种在Unix和类Unix系统运行的脚本语言,在处理文本文件时常会遇到CRLF(回车换行)和LF(换行)的格式转换问题。在Shell可以通过一些工具和命令来实现CRLF转换成LF。 例子一:使用tr命令 tr是Linux系统的一个实用工具命令,它可以对来自标准输入的字符进行替换、压缩和删除处理。 ```shell tr -d '\r' <inputfile >outputfile ``` 其,`inputfile`是输入文件的文件名,`outputfile`是输出文件的文件名。该命令会从输入文件删除所有的回车字符,并将结果保存到输出文件,从而实现CRLF转换成LF。 例子二:使用sed命令 sed是一个流编辑器,也可以用来实现CRLF转换成LF。它可以对文本进行查找、删除、替换等操作。 ```shell sed -i 's/\r$//' inputfile ``` 其,`inputfile`是要处理的文件名。该命令会将文件每行末尾的回车字符替换成空字符,从而实现CRLF转换成LF。-i选项表示在原始文件直接进行修改。 这些是两种常用的在Shell实现CRLF转换成LF的方法,根据实际需求选择适合的方式即可。 ### 回答3: 一种将Shell脚本CRLF换行符转换为LF换行符的方法是使用文本编辑器和命令行工具。 首先,使用文本编辑器打开Shell脚本文件。如果你使用Windows操作系统,可以使用记事本、Notepad++等编辑器打开文件。 在编辑器,按下“Ctrl+H”来打开“替换”功能。在“查找”框输入“\r\n”,在“替换为”框输入“\n”,然后点击“替换所有”按钮。 保存文件并关闭编辑器。 接下来,打开命令行工具,如CMD或PowerShell。 使用cd命令导航到包含脚本文件的目录。 运行以下命令将脚本文件CRLF换行符转换为LF换行符: ``` sed -i 's/\r$//' your_script.sh ``` 这个命令使用sed工具,将脚本文件的\r字符(CRLF换行符结尾)替换为空字符串。-i选项表示直接在原文件上进行修改,your_script.sh是你的脚本文件名。 运行命令后,脚本文件的换行符将被转换为LF,并保存在原文件。 注意:在使用sed命令转换换行符时,请确保备份原文件,以防意外修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值