从windows拷贝到linux虚拟机中的脚本编码问题

错误:

syntax error: unexpected end of file
追问其原因,文件肯定没有错误,因为是从windows下拷贝过来。其实这就是问题。windows下的文件通常都是dos文件格式,而linux下采用unix文件格式。dos格式文件传输到unix系统时,会在每行的结尾多一个^M,当然也有可能看不到,但是在vi的时候,会在下面显示此文件的格式,比如 "test.txt" [dos] 530L, 4568C 字样,表示是一个[dos]格式文件,如果是MAC系统的,会显示[MAC],因为文件格式的原因有时会导致我们的unix程序,或者shell程序出现错误。

解决方法:

把这些dos文件格式转换成unix格式,方法是

vi dos.txt 
:set fileformat=unix
:wq 
这样文件就转换成unix格式文件了,一般在windows机器上编写好了文件传到unix下就可能会出现这样的情况,而一般我们使用ftp命令,常常会加上bin参数表示二进制传输,可以试一下加asc参数,可能传到unix下就是unix格式


其他解决方法:

从windows复制过去,在linux里用cp命令复制一遍(未验证)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值