服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - Linux之CRLF/CR/LF等回车换行符的问题

Linux之CRLF/CR/LF等回车换行符的问题

2023-04-28 17:09Andya_net Linux

这篇文章主要介绍了Linux之CRLF/CR/LF等回车换行符的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

引言

在开发阶段,开发环境测完的配置文件(页面化管理)和shell脚本在上生产时,出现了字符和变量(变量从配置文件中获取)拼接缺失等莫名其妙的问题。

名称介绍

ASCII字符代码表

Linux之CRLF/CR/LF等回车换行符的问题

Linux之CRLF/CR/LF等回车换行符的问题

CR

Linux之CRLF/CR/LF等回车换行符的问题

CR: Carriage Return,对应ASCII中的转义字符是\r,对应ASCII值是13,常用于Macintosh(早期的Mac OS)系统单个字符,

表示回车

LF

Linux之CRLF/CR/LF等回车换行符的问题

LF: Line Feed,对应ASCII中的转义字符是\n,对应ASCII值是10,常用于Unix/Linux/Mac OS X系统中单个字符,表示换行

CRLF

Linux之CRLF/CR/LF等回车换行符的问题

CRLF: Carriage Return & Line Feed,对应ASCII中的转义字符是\r\n,常用于Window系统中两个字符,表示回车并换行

问题

shell脚本在不同系统使用问题

问题描述

Windows系统开发了某个shell脚本,默认是CRLF格式的,在转移到Linux系统上执行时,无法正常执行。

解决方案

方案一:使用notepad++

打开notepad++软件,显示符号

Linux之CRLF/CR/LF等回车换行符的问题

或者

Linux之CRLF/CR/LF等回车换行符的问题

替换所有CRLFLF

Linux之CRLF/CR/LF等回车换行符的问题

或者

Linux之CRLF/CR/LF等回车换行符的问题

方案二:使用Linux系统相关命令将文件转化为unix格式

一共有三种方式:

  • 使用dos2unix命令dos2unix file_name,前提是Linux安装了该命令功能。
  • 使用sed命令sed -i "s/\r//" file_name或者sed -i "s/^M//" file_name将回车字符删除掉。
  • 使用vi/vim命令,执行:set ff=unix将文件设置为unix格式文件。

shell脚本所获取的配置文件内容字符存在^M字符

问题描述

通过使用cat -A file_name的命令可以查看隐藏的字符,shell脚本所获取的配置文件内容字符存在^M字符,即存在\r回车字符。

Linux之CRLF/CR/LF等回车换行符的问题

解决方案

在shell脚本对变量使用

?
1
key1=`echo $key1 | sed "s/\r//g"`

总结

名词 含义 ASCII字符 系统
CR Carriage Return,回车 \r Macintosh(早期的Mac OS)系统
LF Line Feed,换行 \n Unix/Linux/Mac OS X系统
CRLF Carriage Return & Line Feed`,回车并换行 \r\n Window系统

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/Andya_net/article/details/124829764

延伸 · 阅读

精彩推荐
  • LinuxLinux 内存分配流程及 Kmalloc 解析

    Linux 内存分配流程及 Kmalloc 解析

    在 start_kernel 内核初始化函数中,一共调用 86 个函数去初始化,其中有一个 mm_init 函数,用以初始化内存。...

    嵌入式Linux系统开发8612021-10-15
  • Linux使用Linux五年积累的一些经验技巧

    使用Linux五年积累的一些经验技巧

    本篇文章是小编使用Linux五年积累的一些经验和技巧,需要的朋友参考下 ...

    Linux教程网4762020-04-21
  • Linux运维人员常用的Linux命令汇总

    运维人员常用的Linux命令汇总

    作为Linux运维人员,这些常用命令不得不会,掌握这些命令,工作上会事半功倍,提供工作效率。...

    马哥Linux运维10092022-08-29
  • LinuxLinux环境ActiveMQ部署方法详解

    Linux环境ActiveMQ部署方法详解

    这篇文章主要介绍了Linux环境ActiveMQ部署方法,较为详细的分析了Linux环境下ActiveMQ的部署方法,并附带说明了linux安装jdk的相关操作步骤,需要的朋友可以参考下...

    学习笔记6667322021-08-02
  • Linuxlinux使用ControlPersist加快SSH连接速度以提高效率

    linux使用ControlPersist加快SSH连接速度以提高效率

    SSH的连接速度让人头疼,太慢影响效率,那么有什么方法能够加快SSH的连接速度呢?通过ControlPersist即可实现,下面以图文的形式为大家详细介绍下,感兴...

    linux之家7702019-09-20
  • LinuxLinux下如何查杀stopped进程详解

    Linux下如何查杀stopped进程详解

    这篇文章主要给大家介绍了关于Linux下如何查杀stopped进程的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用linux系统具有一定的参考学...

    潇湘隐者4192022-07-09
  • LinuxLinux操作系统内核启动参数详解

    Linux操作系统内核启动参数详解

    这篇文章主要介绍了Linux操作系统内核启动参数详解,本文讲解了常用的设备无关启动时参数、内核开发和调试的启动时参数等内容,需要的朋友可以参考下...

    Linux教程网10012019-10-08
  • Linux详解Linux系统中ping和arping命令的用法

    详解Linux系统中ping和arping命令的用法

    这篇文章主要介绍了Linux系统中ping和arping命令的用法,这两个命令的使用也是检查与网络另一端主机连接性的基本方法,需要的朋友可以参考下...

    Linux命令手册4862019-06-24