这是一个基本问题我很惊讶我无法轻易找到答案:
我使用记事本编写我的脚本 . 有人发给我一些shell脚本(.sh)的代码,我可以修改它以满足我的需要 . 我只是使用记事本(在Windows上)更改了一小段文本,并使用FileZilla(SFTP)将其上传到我的服务器(Debian Linux) .
这有一些问题,我的服务器管理员花了一个小时才找到,即:
-
FileZilla,无论出于何种原因,默认为ASCII而不是二进制! (将其更改为二进制并删除与ASCII的.sh关联)
-
权限错了,chmod负责这个
问题是它仍然没有用 . 为了解决这个问题,我的服务器管理员只需将服务器上的文本(使用vim或nano)复制到新的shell脚本文件中并保存即可 . 在他一直说这个问题是Windows(他喜欢讨厌)之前,但似乎文本编辑正在使用的编码正在破坏文件 .
他说我的文本编辑器编码需要说“无” . 但是,这不是一个选项 - 只有ANSI,UTF和UTS变体是选项!
如何在Windows上创建一个没有编码的shell脚本,以免它被破坏?
我需要能够简单地将文件传输到服务器,我不能在服务器上修改它一次,这是完全不切实际的 .
1 回答
要在记事本上修复EndOfLine和编码:
在记事本的右下角,您可以右键单击编码“UTF-8”的左侧,然后单击转换UNIX(LF)格式 . 如果不是这样,请务必将编码更改为UTF-8 .
在Filezilla中:
转移模式:自动