Dos与Linux的断行字符

Dos和Linux下面的断行字符是不一样的,至于哪里不一样的呢,先举个例子看一看

Dos与Linux的断行字符

Cause

我们也可以使用cat -A filename分别查看Dos和Linux下创建的文件,会发现Dos下面以^M$作为断行符,称为CR与LF两个字符(\r\n),Linux下面仅以$(LF)作为断行符(\n)。这个断行符对Linux影响是很大的,如果这一点不清楚在编写shell的时候很容易踩进坑,却不知道问题在哪,说多了都是泪。
Linux下命令在开始执行的时候它的判断依据是Enter,linux的Enter为LF符号。而Dos下面多了一个^M符号。在这样的情况下,如果是一个shell script 的程序文件,将可能造成程序不能运行的状态。
所以不建议在Win下面把文件编辑好再上传到服务器这种做法,这样会很容易出现错误,如果你这样做了,并且出现了问题,请往下面看。

Resolution

将格式转化为Linux即可,一种可行的方式是使用命令来进行格式转换dos2unix。

dos2unix [-kn] file [newfile] -k:保留该文件的mtime,即不更新文件的上次的修订实践 -n:保留原本的旧文件,如果将转换后的内容输出到新的文件,如:dos2unix -n old new

相应对的还有unix2dos,这里就不做赘述。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13118.html