从windows传脚本到linux的格式问题

从windows上传一个shell脚本到linux(通过linux下rz二进制方式传送),执行该脚本时出错:

 

+ $'\r'
: command not foundline 2: 

multithread
.sh: line 48: syntax error: unexpected end of file

 

查看文件发现,脚本总共才47行,根本没有48行。

怀疑是从windows传送文件时文件格式有问题,在windows下换行符为两个字符/r(回车)/n(换行),而在linux下换行符只需要一个字符/n,所以多出一个/r控制符。

在vim下set list,没有发现可以的控制字符,不知道怎么回事。

使用dos2unix对文件格式进行了调整:

 

$ dos2unix multithread.sh
dos2unix
: converting file multithread.sh to UNIX format 

 

格式化完毕后发现文件果然变了,

 

-rw-r--r--  1 wangkun wangkun 1232 Nov  2 23:51 multithread.sh
-rw-r--r--  1 wangkun wangkun 1281 Nov  2 23:45 multithread.sh.bk

 

连大小都变了。又vim进去看了一下,还是没发现有什么不同。但diff了一下内容,发现内容全都显示出来,表明全都不同。

突发奇想,使用rz命令以ASIIC格式重新传了一下文件,竟然直接就可以执行了,看来在windows和linux下传输脚本时选择ASIIC格式传输是比较保险的一种方式。

 

posted on 2008-11-03 00:00 SYSOP 阅读(772) 评论(0)  编辑 收藏 引用 所属分类: 2 Shell

<2019年8月>
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567

导航

统计

随笔分类

随笔档案

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜