如题,python脚本在windows编辑后,在linux下执行提示 /usr/bin/python^M: bad interpreter: No such file or directory
看到^M应该是隐藏字符,原因就是windows行尾和liunx行尾标识符不一致,不同系统间行尾表示如下:
<strong>不同系统间的行尾表示
UNIX格式,每行的行尾都是用一个0x0a字符(换行字符LF)表示的,
而在WINDOWS/DOS下每行的行尾都是用0x0d 0x0a两个字符(回车字符CR,换行字符LF)表示的,
MAC机,每行的行尾都是0x0d字符表示,即回车字符CR。
<span style="color:#3333FF;">(经我用winhex查看,确实如此——yockie注)</span>
在很多计算机语言中, <CR>表示为字符或字符串是\r, 而<LF>表示为字符或字符中是\n.
而在printf这样的函数中, 如果你出现一个\n, 它却代表了一个逻辑上的意义, 即它代表在本地系统上的那种回车换行, 所以它在UNIX上只是<LF>, 但如果你在DOS上用诸如Truboc编程的话它输出的是<CR><LF>
<strong>所以不同系统之间传输交换文件的时候,会出现问题;</strong>
1)Unix或linux上有个小工具, 专门在两种文件格式之间进行转换, 叫unix2dos, dos2unix.或在
vim中, 如果你想把一个文件存为另一种文件格式, 只需:set fileformat=unix或等号后面是dos, mac即可, 接下来的存盘动作就会自动把你的文件存为指定平台的格式.
2ÿ