加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

linux下执行脚本 sh -x XXX.sh 调试中存在大量/r 的问题

发布时间:2022-11-06 13:32:13 所属栏目:Unix 来源:未知
导读: 今天调试一个脚本,每句结尾都有大量/r 换行字符。检验了很多次都没调试成功。
后来才发现这个脚本是在windows环境下编写的,直接ftp拖到了linux服务器上。
vi下用 :set ff 查看文件的编码

今天调试一个脚本,每句结尾都有大量/r 换行字符。检验了很多次都没调试成功。

后来才发现这个脚本是在windows环境下编写的,直接ftp拖到了linux服务器上。

vi下用 :set ff 查看文件的编码格式,果然是dos的。

用:set ff=unix 将文件变为unix格式,就调试成功了。

备注点1 win和linux换行的区别:

Unix体系里,每行结尾只有“”,即“\n”;

Windows体系里面,每行结尾是“”,即“\n\r”。

一个直接结果是,Unix体系下的文件在Windows里打开的话,所有文字会变成一行;

而Windows里的文件在Unix下打开的话unix脚本,在每行的结尾可能会多出一个^M符号。

脚本精灵如何录制脚本_unix脚本_脚本精灵怎么写脚本

备注点2 文件格式转换的方式:

方法1:

在命令模式下:输入:%s/^M//g 然后,回车即可替换

注,其中”^M”的输入,分别是“Ctrl+v”、“Ctrl+M”键生成的

方法2:

使用vi打开文本文件

vi dos.txt

命令模式下输入

:set fileformat=unix

:w

方法3:

使用sed 工具

sed ’s/^M//’ filename > tmp_filename

方法4:

既然window下的回车符多了‘\r’,那么当然通过删除‘\r’ ,也可以实现:

tr -d ‘\r’

方法5:(最常用的方法)

$ dos2unix filename

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章