首页
学习
活动
专区
圈层
工具
发布

理解 CRLF,LF

CRLF, LF 是用来表示文本换行的方式。CR(Carriage Return) 代表回车,对应字符 '\r';LF(Line Feed) 代表换行,对应字符 '\n'。...其中,Windows 系统使用的是 CRLF, Unix系统(包括Linux, MacOS近些年的版本) 使用的是LF。 系统间的这个差异给跨平台协作开发和跨平台运行带来很多不方便的地方。...在Windows系统上换行符是CRLF, \r\n两个字符,只删除\n是不够的。所以在读取文件的时候一定要小心跨平台。 除了上面的问题,我们平常受到换行符问题的困扰更多来自协作开发工具,比如Git。...-text 不执行标准化与转换 text=auto 根据 Git 决定是否需要执行标准化与转化 不设置 使用core.autocrlf配置决定是否执行标准化与转换 eol eol=lf 强制完成标准化...,不执行转换(相当于指定转换为LF格式) eol=crlf 强制完成标准化,指定转换为CRLF格式 binary binary 二进制文件不参与标准化与转换 不设置 由 Git 决定是否为二进制文件

3.2K41

Docker 容器启动时报错 `entrypoint.sh` 的排查与修复指南

本文聚焦 Docker 启动时 "entrypoint.sh" 存在却执行失败的问题,梳理 CRLF、权限、shebang、挂载覆盖、架构不匹配与 EOL 镜像仓库异常等根因,提供诊断命令与修复路径,并给出兼顾稳定性与可维护性的...为什么"文件存在但无法执行"CRLF 与 LF 行尾不一致如果脚本使用 Windows 的 CRLF 行尾,shebang 行末会带 ^M。内核会把解释器路径识别为带回车符的路径,最终找不到解释器。...确保脚本具备执行权限可在宿主机设置:chmod +x entrypoint.sh也可在 Dockerfile 中设置:RUN chmod +x /PATH/entrypoint.sh使用与镜像一致的 shebangAlpine...在镜像内设置执行位,并避免挂载覆盖入口脚本路径。架构不匹配问题若入口为二进制文件,请确认其架构与目标平台一致,例如 ARM 二进制不能直接在 x86 环境执行。...建议优先在源码和 CI 中统一 LF。如果需要在镜像内快速修复,可使用 sed -i 's/\r$//'。同时请确认执行位、解释器路径和挂载配置正确。

23210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    分享导出博客园文章成本地 Markdown 文件存储的工具

    此文主要分享了如何将自己博客园的文章自动导出到 Markdown 文档进行存储,以便在本地进行归档管理,程序中也对文章的分类、tag、代码块以及文章中的图片进行了保存处理,以便上传到自己的图。...codeblock 中,你也可以修改源码保存成其他的格式块; 保存的文件名就是原文章的路径,如果你的文章都设置了 EntryName,那生成的文件名就会非常的友好; 文章中的图片可选进行本地保存,命名的格式为源文件名...unix、windows、mac 的换行习惯 unix / linux:用 LF (\n) 表示一行结束。 mac:用 CR (\r) 表示一行结束。...windows:用 CR LF (\r\n) 和起来表示一行结束。...文章分类、tag 的获取 分析后发现通过模拟请求 API 获取即可,需要的参数通过正则匹配获取,返回数据为 Unicode 进行转码提取。

    2.4K50

    请把 .gitattributes 加入你的项目

    本文就以此谈论如何配置行尾,以便让即便跨仓库使用不同机器、操作系统的每一位开发者都能使用到同样的值。 .gitattributes 能平息程序员之间的战火吗?...并非所有开发者都整齐划一,对于你在一台 Windows 主机上使用 Visual Studio Code 写的代码,下一次由 pull request 提交时可能就是在 MacOS 主机上的 Sublime...在 Windows 系统中,对于行尾默认使用回车换行 CRLF(Carriage Return Line Feed);而 Linux/MacOS 则只使用换行 LF(Line Feed)。...由此,如果你还使用了 prettier 并将 endOfLine 像这样设置的话: { "endOfLine": "lf" } 使用 Windows 的开发者就会遭遇以下语法提示: ?...为新项目配置 .gitattributes 先在项目根目录创建一个 .gitattributes 文件,其内容为: *.js eol=lf *.jsx eol=lf *.json eol=lf

    1.4K20

    不同系统的换行符的差异

    换行符(通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符)是字符编码规范(例如,ASCII、EBCDIC)中的控制字符或控制字符序列,用于表示一行文本的结尾和新文本的开头。...debug 了一下才发现 Windows 系统上的换行是 \r\n, 而 Mac 系统上的换行是 \n。于是查了一下不同系统的换行符的差异问题。...Windows 系统设计遵循了 CR + LF 的约定,而 Unix 系统则遵循了 LF 的约定, 之后的 类 Unix (Linux, macOS) 系统也遵循了 LF 的约定。...当然也有异类,老版的 mac 系统使用 CR 作为换行符。...表示 CR 回车: \r LF 换行: \n 操作系统 换行符号 Windows \r\n Unix、Linux、MacOS \n classic Mac OS \r 问题 由于这个差异,会导致文本类的文件在跨系统浏览时会产生一些差异

    1.8K10

    Git汇总--常见问题及延伸阅读

    Git忽略语法 *.a # 忽略所有以 .a 为扩展名的文件。 !lib.a # 但是 lib.a 文件或者目录不要忽略,即使前面设置了对 *.a 的忽略。...文件名大小写问题 Linux、Solaris、BSD及其他类Unix操作系统使用的是大小写敏感的文件系统,而Windows和Mac OS X(默认安装)的文件系统则是大小写不敏感的文件系统。...可以通过设置**core.ignorecase **为false,来开启文件名大小写敏感!...LF,“\\n”表示:用于Multics、Unix、类Unix(如GNU/Linux、AIX、Xenix、Mac OS X、FreeBSD等)、BeOS、Amiga、RISC OS等操作系统中 CR,“...core.autocrlf true/input http://www.worldhello.net/gotgit/08-git-misc/040-eol.html 延伸阅读 Git的功能极其强大,我们可以使用

    65841

    C语言函数大全--s 开头的函数(2)

    void *setmem(void *dest, size_t n, int c);用于将指定内存区域的每个字节都设置为指定的值int setmode(int fd, int mode);它是 Windows...在文本模式下,Windows 将回车符(\r)和换行符(\n)组成的字符序列映射为单个换行符(\n),因此在读取文本文件时可以正确处理换行符。...red、green 和 blue 要设置的 RGB 值,取值范围为 0~255。...在现代的 Windows 操作系统中,DOS 环境已经被废弃,因此这个程序可能无法正常工作。如果要获取和修改当前系统时间,可以使用操作系统提供的相关 API 或系统调用接口实现。...参数:left : 视口矩形的左上角横坐标,取值为正整数或 0top: 视口矩形的左上角纵坐标,取值为正整数或 0right: 视口矩形的右下角横坐标,取值为正整数bottom: 视口矩形的右下角纵坐标

    30021

    git相关问题解析,你想要的都有🔥

    发现gitlab上代码的数据统计采集数据的方式应该不唯一,具体描述如下: 我给后端项目设置了项目级的git用户配置,后端同事提交的时候直接提 前端项目提交使用系统级的git用户配置 做完这些之后发现,.../linux下换行符(\n, \r\n, \r)不一致的问题 git config --global core.longpaths true git config --global core.quotepath...具有最高的优先级,无论你是否设置相关的换行符风格转化属性,你都可以和团队保持一致; 使用 * text=auto 可以定义开启全局的换行符转换; 使用 *.bat text eol=crlf...就可以保证 Windows 的批处理文件在 checkout 至工作区时,始终被转换为 CRLF 风格的换行符; 使用 *.sh text eol=lf 就可以保证 Bash 脚本无论在哪个平台上...Windows Linux/Mac Old Mac(pre-OSX) CRLF LF CR '\n\r' '\n' '\r' Windows 提交时转换为LF,检出时转换为CRLF git config

    1.8K20

    Node.js 编写 CLI 的实践

    然后将插件下载到Home目录下的.feflow目录(Windows系统为"C:\Users\username.feflow" 目录)下的node_modules里面,并且写入到配置文件里面。...表格信息展示,用于升级包的提示 minimlist 用户输入的参数解析 shelljs Node.js执行shell命令 clui 进度条 遇到的问题 1,windows下用户未设置HOME环境变量导致报错...解决办法: 由于windows下HOME环境变量并非默认存在,因此不能直接 使用。...2,OSX平台运行feflow报错: env: node\r: No such file or directory 解决办法: 由于类unix系统的换行符号为\n,而windows系统为\n\r。...可以在工程根目录下加.gitattributes文件,设置* text eol=lf,这样 git提交时就不会讲LF转换成CRLF 原文链接:http://www.ivweb.io/topic/5918069a869edc1f59d6ba13

    2.9K00

    IDEA中换行符导致的ESlint警告的解决方法

    UNIX/Linux 使用的是 0x0A(LF),早期的 Mac OS 使用的是0x0D(CR),后来的 OS X 在更换内核后与 UNIX 保持一致了。...这个功能默认处于“自动模式”,当你在签出文件时,它试图将 UNIX 换行符(LF)替换为 Windows 的换行符(CRLF);当你在提交文件时,它又试图将 CRLF 替换为 LF。...,检出时转换为CRLF git config --global core.autocrlf true # 提交时转换为LF,检出时不转换 git config --global core.autocrlf...config --global core.safecrlf warn IDE设置使用UNIX换行符 方式1 IDEA的设置File => Settings =>Editor => Code Style...Line separator (for new lines) ,选择:Unix and OS X (\n) 对已使用Windows换行符的文件,可以使用Sublime Text打开, View->Line

    4.4K00

    【git】掌握基本的git指令并学会从代码仓库GithubGitee学习

    git常用命令 这里总结了一些我经常使用的git命令: 配置全局名称和邮箱 git config user.name "xxx" git config user.email "xxx@qq.com" 注...# 暂存所有改动过的文件,内容为当前旧分支的所有文件 git add -A # 提交更改 git commit -am "init" # 删除原始主分支 git branch -D main # 将当前分支重命名为...换行符为CRLF,也就是\r\n,在Linux是LF,也就是\n,所以一般在Linux开发不会有这个问题,但如果在Windows下, 需要设置一下用户配置默认换行符为LF,而且也要设置git不论上传还是下载的都是...LF,如下: git config --global core.autocrlf input git config --global core.eol lf 此外,还可配置保存信息,避免每次vscode...gitee上看自己的github仓库了,git clone工具也可以使用了(速度棒棒哒)。

    43410

    PHP中file_put_contents追加和换行「建议收藏」

    在PHP的一些应用中需要写日志或者记录一些信息,这样的话。 可以使用fopen(),fwrite()以及 fclose()这些进行操作。...也可以简单的使用file_get_contents()和file_put_contents(). file_put_contents()写文件。默认的是重新写文件,也就是会 替换原先的内容。...追加的话使用参数FILE_APPEND 以追加形式写入内容 当设置 flags 参数值为 FILE_APPEND 时, 表示在已有文件内容后面追加内容的方式写入新数据 //log $tmpArr =...不建议使用\r\n,因为: 在windows中\r\n是换行 在Mac中\r是换行 在Liunx中\n是换行 但是PHP提供了一个常量来匹配不同的操作系统,即: PHP_EOL file_put_contents...("log.txt", "Hello world everyone.".PHP_EOL, FILE_APPEND); file_put_contents($payLogFile, $newLog.PHP_EOL

    2K20

    【驱动】串口驱动分析(四)-串口编程和调试方法

    eof 字符 表示文件末尾而发送的字符(用于终止输入) eol 字符 为表示行尾而发送的字符 eol2 字符 为表示行尾而发送的另一个可选字符 erase...设置行约束规则为N min N 和 -icanon 配合使用,设置每次一完整读入的最小字符数为N> ospeed N 设置输出速度为N 波特 rows...启用RTS/CTS 握手 csN 设置字符大小为N 位,N 的范围为5 到8 [-]cstopb 每个字符使用2 位停止位 (要恢复成1 位配合"-"即可)...如果不设置,填充字符则是 ASCII NUL。 NLDLY   新行延时掩码。取值为 NL0 和 NL1。 CRDLY   回车延时掩码。取值为 CR0, CR1, CR2, 或 CR3。...取值为 1 或者2 @param[in] nStop 类型 int 效验类型 取值为N,E,O,,S @return 返回设置结果 - 0 设置成功

    2.1K10

    Nodejs写文件换行

    使用 Nodejs 的 fs.writeFile Api 写文件是很常见的操作。 而写文件过程中换行也是很常见的,但是如何换行这个问题需要注意,因为不同的操作系统换行符是不一样的。...如何换行 操作系统的换行符不一样,其中 Windows 系统是 \r\n 其他系统是 \n。 因此,如果需要写出来的文件适用于各个系统,那么写文件的时候就需要判断。...不过好在 Nodejs 提供了换行符常量 os.EOL。...API,于是手写了一段代码 let str = 'abc\r'; fs.writeFileSync(sitemapFile, str) 这段代码看起来没啥问题,能正常写入文件,使用 vsCode 编辑器也能正常打开...所以,为了避免不必要的麻烦,使用 Nodejs 写文件的时候,换行符还是建议使用 os.EOL 常量。

    3.5K20

    Java文本块

    \",\n" + "\"age\": 30\n" + "}"; 文本块来拯救 使用新的文本块功能,我们可以将代码重写为: String text = """...这是因为文本块的处理分为三个步骤: 行终止符被标准化为LF字符。这样可以避免不同平台(例如Windows和Unix)之间的兼容性问题。 附带的前置空格和所有尾随空格均被删除。...偶然的前导空格是通过找到所有行的前导空格的公共数量来确定的。 转义序列被解释。文本块可以包含与标准字符串相同的转义序列(例如\t或\n)。...请注意,已经添加了两个新的转义序列:\s用于显式空间,\eol>作为连续指示符(稍后在\eol>上有更多介绍)。...新的转义序列 使用新的转义序列,我们可以将单行的内容拆分为多行,而无需创建实际的行终止符。

    2.1K10

    【小经验解决大问题】Windows与Linux换行符惹得祸

    程序员免不了要与windows和linux打交道,在windows写启动脚本时要要用到bat,而在linux时则要使用到shell脚步。.../bin/sh #该脚本为Linux下启动java程序的通用脚本。即可以作为开机自启动service脚本被调用, #也可以作为启动java程序的独立脚本来使用。...然后使用命令 sh startup.sh start 不可避免的出现类似以下错误 syntax error near unexpected token '$' \r” 出现以上错误就是因为windos...notepad++中,“视图->显示符号->显示所有符号”,然后可以看到所有的回车换行都是windows的CR LF: ?...得知是windows和linux下的回车换行符不兼容导致的问题,剩下的就是去将windows下面的CR LF,转换为linux下面的LF即可。

    2.2K20

    算法修炼之练气篇——练气五层

    样例输入 1 样例输出 positive 主要就是if语句的运用,比较简单,见代码: #include int main() { int n;//int的取值范围2147483648...#include int main() { double r1,z1,r2,z2; scanf("%lf %lf %lf %lf",&r1,&z1,&r2,&z2);...printf("%.2lf",(r1*z1-r2*z2)/(z1-z2)); return 0; } 题目 2998: 电影票 题目描述 已知一位小朋友的电影票价是10元,计算x位小朋友的总票价是多少...每道题目(包括弟弟的答案)的格式为a+b=c或者a-b=c,其中a和b是作业中给出的,均为不超过100的非负整数;c是弟弟算出的答案,可能是不超过200的非负整数,也可能是单个字符"?"...一开始我是这样写的,时间超限50 #include int main() { int a,b;//a为加数,b为被加数 char m,n;//m为+号或-号,n为等号

    39010

    Git入门学习到进阶1

    使用Windows的童鞋要特别注意,千万不要使用Windows自带的记事本编辑任何文本文件。...#在gitattributes文件的一行中,一个属性(以text属性为例)可能有4种状态: 设置text 不设置-text 设置值text=string 未声明通常不出现该属性即可;但是为了覆盖其他文件中的声明...* text=auto *.txt text *.jpg -text *.vcproj text eol=crlf *.sh text eol=lf *.py eol=lf #对于工作目录,除了...eol #设置行末字符 eol=lf,入库时将行尾规范为LF,检出时禁止将行尾转换为CRLF eol=crlf,入库时将行尾规范为CRLF,检出时将行尾转换为CRLF...第5行,对于sh文件,标记为文本文件,在文件入Git库时进行规范化,即行尾为LF。在检出到工作目录时,行尾也不会转换为CRLF(即保持LF)。 第6行,对于py文件只针对工作目录中的文件行尾为LF。

    83321
    领券