博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
windows下写的脚本,在linux下执行失败
阅读量:4987 次
发布时间:2019-06-12

本文共 1073 字,大约阅读时间需要 3 分钟。

Windows中的换行符为CRLF, 即正则表达式的rn(ASCII码为13和10), 而Unix(或Linux)换行符为LF, 即正则表达式的n. 在Windows和Linux下协同工作的时候, 往往这个细小的差别就导致问题, 如
1)Windows下写的Shell脚本, 在Linux下运行时往往出现rn是无效参数, 不能执行;2)vi 等编器下打开一个文本文件会包含 ^M3)Linux下查看文件会在文件头部出现一些乱字符4)在Windows下开发写的Makefile往往也会运行出错.…

解决的方法:

1) 文本批量转换工具: Unix系统中的dos2unix(相反的也有unix2dos)  方法一: 使用 vi 打开源文件, 把 '\r\n' 替换成 '\n'         ** 缺点 ** : 不适合大量文件的批量作业.  方法二: 使用 UtraEdit 把 Windows 格式的文件转换成 Unix 格式.         (菜单)文件-->转换-->Unix转DOS         ** 缺点 ** : 不适合大量文件的批量作业.  方法三: Unix 下的 dos2unix 命令, 如 $ dos2unix -k xx.c         ** 缺点 ** :         此方法有一致命缺陷, 它会改变原来的文件属性.         如一个可执行 shell 脚本的可执行属性及其它属性, 转换后都将会丢掉         (即使用 -k 也只是能保留住原来的日期.)         ** 优点 ** : 适合大量普通文件本文件的批量作业.  方法四: win2unix (windows, unix 均可使用), 功能类似 dos2unix,         如 win2unx xx.c (更多详细实例见后文)         ** 优点**   :         克服了 dos2unix 的所有缺点(见上), 它能保留源文件的任何属性.         还可以返回转换即 unix2win         适合大量文件的批量作业.

2) 在进行编辑或保存的时候, 选择行末符号为Unix换行(LF)elipse下,回车换行的修改点击Window >>Workspace 修改 Next text file line delimiter的 Other ,由Windows改为Unix.

转载于:https://www.cnblogs.com/chenjianhong/p/4144668.html

你可能感兴趣的文章
删除博客园复制 python 代码时遗留的空格
查看>>
根据元素取两个list<T>不同
查看>>
Delphi 中的 XMLDocument 类详解(4) - 获取根目录下的元素数
查看>>
教你透彻了解红黑树
查看>>
dbf导入sqlserver
查看>>
管洪伟 130702010039 实验报告
查看>>
构建之法阅读笔记05
查看>>
纸上谈兵01 排序算法简介及其C实现
查看>>
哈夫曼树
查看>>
什么是提醒?
查看>>
AngularJS5.0 (第一篇)
查看>>
ORACLE基础
查看>>
redis-4.0.8 配置文件解读
查看>>
Ubuntu 16.04搭建原始Git服务器
查看>>
Ubuntu 16.04下没有/var/log/messages文件问题解决
查看>>
JSP指令
查看>>
[转]操作系统Unix、Windows、Mac OS、Linux的故事
查看>>
SQL Server中 sysobjects、syscolumns、systypes
查看>>
heredoc和nowdoc的区别
查看>>
mysql存储过程中遍历数组字符串的两种方式
查看>>