不知道从什么时候开始,突然发现在windows下写的Shell脚本同步到github后,从linux服务器下载运行的时候总是出错,开始以为是代码本身有问题,后来发现不是,是因为换行符编码不能识别,windows是 ' \r\n ' linux 是 ' \n '。
如上图,一般我们正常使用notepad++或是notepad写的代码是windows UTF-8格式,左侧显示windows(CR LF),这种情况下代码上传后在Linux下是不能直接执行的。
以notepad++为例,双击下边的windows(CR LF)就弹出上图转换按钮。
如果linux中下载了windows编码的脚本,可以直接在VIM中 set ff=unix,告诉 vim 编辑器使用unix换行符,然后保存退出后就可以执行了。
有时候我们使用windows记事本书写代码然后上传到github,此时我们可以在github bash中直接转换,命令如下:
sed -i 's/\r$//' test.sh
Linux下也一样,除了 set ff=unix外,也可以使用sed转换。
Proudly Powered By WordPress | IEWB.NET 2009-2024 版权所有