suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - 脚本从windows上传到linux无法执行

在本地windows,写了个sh脚本,用filezilla,sftp协议上传到center os下,权限777,但是执行总是报错,没有修改过任何字母,在centeros下重新创建了个sh文件,把内容复制进去,然后就可以正常运行了,完全不懂这是为何,把两个文件下载下来对比的编码格式是一样的,求各位解答,实在是困惑!

天蓬老师天蓬老师2896 Tage vor376

Antworte allen(8)Ich werde antworten

  • PHPz

    PHPz2017-04-10 15:30:55

    该问题已确认为编码问题,在notepad++中编辑时虽然是以utf8格式编码,但是还有个地方是需要转码的,windows和linux/unix的换行和空行符是不同的,所以在windows下编辑的脚本放到linux上就运行不了了,后查到在notepad++中可以进行转码。

    这样转码之后再上传到linux就可以正常运行了,不过网上也有说是上传工具的问题之类的说法,我用的是filezilla没有设置过什么东西都是下载就用,暂时没发现上传工具有什么影响。
    各位答主所说的方法并没有每个都试过(抱歉了),再次看到邮件提醒有问题在这儿,赶紧过来贴出解决方法!

    Antwort
    0
  • 迷茫

    迷茫2017-04-10 15:30:55

    掐指一算,估计是编码问题,可以使用iconv 转码一下 就是从gb2312转到utf-8,下载下来编码一样是不是因为系统或者下载器的问题?

    Antwort
    0
  • 黄舟

    黄舟2017-04-10 15:30:55

    vim 打开 set ff=unix

    Antwort
    0
  • PHPz

    PHPz2017-04-10 15:30:55

    会不会是utf-8 的bom问题

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-04-10 15:30:55

    也许是换行符的问题,参考我的这个提问:
    怒了!文件明明存在,却提示找不到,这是什么鬼?


    PS:解决方案跟楼上 @苏生不惑 提供的一样。

    Antwort
    0
  • ringa_lee

    ringa_lee2017-04-10 15:30:55

    方法有很多:

    1. 采用 @苏生不惑 提供的方法,用vim改文件
    2. 使用dos2unix命令
    3. 使用sed -i 's/\r//' CRLF.txt

    Antwort
    0
  • PHP中文网

    PHP中文网2017-04-10 15:30:55

    哥们你也不贴出来报的什么错

    Antwort
    0
  • PHPz

    PHPz2017-04-10 15:30:55

    在windows上编写的shell脚本放到linux中执行时建议用命令 set fileformats='unix'格式化语言

    Antwort
    0
  • StornierenAntwort