Windows和Linux/Unix文件格式bug:/usr/bin/env: 'python\r': No such file or directory

Windows和Linux/Unix文件格式bug:/usr/bin/env: ‘python\r’: No such file or directory

相信大家在频繁切换windows和linux系统时,都会有脚本运行bug的体验,下面我根据查到的资料和实验,给大家具体说明一下。

这其中的bug原因就是windows下和linux下的文件格式不一样造成的:
转载自:https://www.cnblogs.com/HeDaoYiWenZi/articles/2855965.html

windows下的python脚本在linux下运行时,会出现“/usr/bin/env: ‘python\r’: No such file or directory”的错误,提示没有“python\r”这个文件或文件夹。你会很奇怪问什么我明明没有“\r”为什么会多出来呢?这就是windows和linux的文件格式差别导致的。

在windows中文件的回车换行有两个字符组成,分别是\r和\n,对应ascii码是13和10,而在linux中换行只有一个字符\n,ascii码是10。当windows中的文件在linux下运行时,linux系统识别不了"\r\n"为回车换行,而是识别成"\r"加换行,这就导致在运行脚本时出现“python\r”情况。

下面为大家提供解决方案:
在linux下通过vim编辑器打开windows下的这个脚本,
执行命令::set ff 可以查看文件格式,你会看到 fileformat=dos,也就是windows下的格式,
再执行命令::set ff=unix 这时候就把文件格式转换成unix(如果不放心可以执行上面:set ff 进行检查),
这样就可以在linux下运行脚本了。

下面根据我的实验为大家解释一下文件是从什么时候决定是哪种格式的:
在脚本文件准备好之前经历了两个阶段,一个是创建,一个是输入。实际上文件的格式是在第一次输入的时候才被确定的。无论你是在windows还是linux下创建,只要你在linux下第一次输入,就是unix格式;在windows下第一次输入,那么格式就是dos。之后不论在哪个系统编辑器正常输入,都不会变了(当然除了像vim这种更改文件格式的操作)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值