关注微信公众号:CodingTechWork,一起学习进步。

引言

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

名称介绍

ASCII字符代码表


CR


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

LF


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

CRLF

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

问题

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

问题描述

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

解决方案

方案一:使用notepad++

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

    或者

  2. 替换所有CRLFLF

    或者

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

一共有三种方式:

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

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

问题描述

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

解决方案

在shell脚本对变量使用

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系统

Linux—CRLF/CR/LF等回车换行符问题详解相关推荐

  1. html+正则+换行+回车,正则与回车换行符使用详解

    这次给大家带来正则与回车换行符使用详解,正则与回车换行符使用的注意事项有哪些,下面就是实战案例,一起来看一下. C#中,读取文本文件内容,里面往往有许多回车换行符("\r\n"), ...

  2. 回车换行符 crlf 那点事

    不同的操作系统回车换行符定义是不一样的,如果你跟我一样记不住,crlf几个字段的含义的话,记录下来就非常有必要了 win        \r\n  CRLF ASCII 13 carriage ret ...

  3. windows下回车换行符在Linux下显示^M问题

    背景: win下的PHP文件打包,在Linux下解压后,在git status 时,显示发生修改,但并没有修改,查看文件会发现这种字符^M其实就是因为换行符的原因 ,Windows换行符和Linux换 ...

  4. linux换行符 r,\r \n 回车换行符详解

    \r \n 回车换行符详解 \r \n 回车换行符详解 \r \n 回车换行符详解1. \r \n 回车换行的含义1.1 \r 回车 1.2 \n 换行 2. \r \n 回车换行的历史2.1 \r ...

  5. linux系统下回车换行符

    简述 回车换行符在文本文件的读写中经常用到,windows下面稍微复杂点,linux系统下更为简单. 详述 回车和换行是两个不同的概念. 回车,就是告诉计算机把头定位在左边界:换行,就是把头向下移动一 ...

  6. java回车换行符linux,回车换行符 java

    回车换行符 java [2021-01-31 11:28:50]  简介: java中的换行符是[\n]和[\r].二者的区别是:[\r]表示回车,[\n]表示新行,但两者都可以实现换行.具体实现方法 ...

  7. \r \n 回车换行符详解

    \r \n 回车换行符详解 1. \r \n 回车换行的含义 1.1 \r 回车 1.2 \n 换行 2. \r \n 回车换行的历史 2.1 \r \n 回车换行的历史 2.2 发展:linux 和 ...

  8. c语言回车换行符的作用,求助,c语言如何输出回车换行符啊?

    C语言在向计算机输入文本文件时,将回车换行符转换为换行符,在输出时把换行符转换成回车和换行两个字符.在用二进制文件时,不进行这种转换,在内存中的数据形式与输出到外部文件中的数据形式完全一致,一一对应. ...

  9. 在windows系统写脚本,如何去掉回车换行符

    在windows系统写脚本,如何去掉回车换行符 在windows系统中写bash脚本,然后再拿到linux系统中运行,通常会遇到这样的问题: 无缘无故多出 "\r",这是windo ...

最新文章

  1. python树莓派设备_Python+树莓派制作IoT(物联网)门控设备
  2. 【深度学习】相当全面的深度学习环境配置指南!(Windows、Mac、Ubuntu全讲解)...
  3. 5 款可替代 du 命令的工具!
  4. 前端代码是怎样智能生成的?
  5. c语言穷举算法 枚举法,c语言枚举法 穷举法 ppt课件
  6. 【HDU - 4055】Number String(dp,思维)
  7. Oracle笔记 十一、PL/SQL函数和触发器
  8. “找不到网络路径”的检测方法及解决方案
  9. php记住用户名功能,php使用cookie实现记住用户名和密码实现代码
  10. PhpSpreadsheet如何读取excel文件
  11. 操作系统原理实验报告——进程控制与描述
  12. 学生考勤及行为管理系统_学生考勤信息管理系统.doc
  13. php讲字符串转成数组中,PHP将字符串转数组
  14. sse服务器推送性能,SSE 服务端向客户端推送
  15. Linux源码编译安装步骤及命令
  16. 一次重新的认识--第二次随笔
  17. 安装maven的eclipse插件出现Cannot complete the install because one or more required items could not be found
  18. 不良资产处置,正在爆发的10万亿蓝海市场
  19. 【Qt系列】实时显示鼠标位于QGraphicsView或QGraphicsScene坐标点
  20. 重磅!中国新型类脑计算芯片首登《自然》封面

热门文章

  1. dist文件部署到服务器,npm run build之后生成的dist如何扔到服务器运行(npm run build之后如何本地运行)...
  2. JS正则密码校验之:JS正则匹配半角英文符号
  3. 部落冲突自动采集资源源码
  4. 如何使用集成在 SharePoint 中的开源 ONLYOFFICE 文档替代微软 Office
  5. 微型计算机四千元典型配置,4000元电脑配置推荐 四千元配置的电脑好用吗
  6. OFD开发系列(三)-文本提取
  7. 基于强化学习的多智能体框架在路由和调度问题中的应用
  8. 微信删除朋友圈多久会从服务器消失,那些从你微信朋友圈消失的人,就别再联系了,原因很简单...
  9. JPG,PNG和GIF
  10. SQL小知识011:利用Case When Then多条件判断与分类统计