Windows 和 Unix 之间的可移植性错误 r (CRLF) 和 (LF)



>当我在Windows平台中为Shell Script编写代码时

#!/bin/bash
a=20
b=10
sum=`expr $a + $b`
echo $sum

但试图在 UNIX 平台上执行它,它给了我错误'20r': command not found因为 Windows 文件以/r/n 结尾,而 UNIX 文件以/n 结尾。

知道如何删除和处理此类错误吗?

使用 dos2unix - "将 DOS/MAC 格式的纯文本文件转换为 UNIX 格式的程序" - 或类似的命令。

像 Git 或 Hg 这样的存储库支持"行结束规范化"。出于其他原因,使用版本控制系统也很棒!

如果通过 [S]FTP/SCP 传输(例如WinSCP) 为传输指定"文本模式",转换将自动完成 - 换行转码是作为复制/传输过程本身的一部分完成的。

许多"高级"文本编辑器(例如。[x]emacs,[g]vim,sublime,notepad++,甚至Visual Studio)也可以修复/规范化此类文件。这些编辑器还可用于从开始写入文件:)

最新更新