代码之家  ›  专栏  ›  技术社区  ›  Gaia

Bash脚本中的换行疯狂

  •  4
  • Gaia  · 技术社区  · 17 年前

    我有一个bash脚本,我在windows上使用UltraEdit进行编辑,并使用Unix行终止符样式另存为UTF-8无BOM,如UE中“另存为”对话框中所指定。

    我的问题是:

    A) 为什么只有最后一行终止符会导致问题?

    7 回复  |  直到 17 年前
        1
  •  2
  •   ShoeLace    17 年前

    ASCII/text FTP以在您不需要时进行行尾转换而闻名。

        2
  •  2
  •   ghostdog74    17 年前

    您可以运行dos2unix来摆脱它们。。

        3
  •  2
  •   Sinan Ünür    17 年前

    这里有两个问题:首先,假设编辑器以Unix行结尾保存,则应该使用二进制FTP,而不是ASCII。其次,这是令人费解的,编辑似乎插入了 CTRL-Z

    保存由一行组成的文件,通过常用方法将其传输到Unix系统,并使用:

    xxd myscript.sh
    

    0x1a 来验证我的理论是否正确。

        4
  •  2
  •   Gaia    17 年前

    我是新来的。我应该打开一个新问题还是重新标记这个问题?

    多谢大家

        5
  •  2
  •   Banjer    14 年前

    我有一个类似的问题,在Ultraedit中对所有保存的新文件设置BOM(字节顺序标记),尽管我没有选中此选项。这在Linux中造成了严重破坏。解决方案是将默认编码设置为ANSII。此设置至少在UltraEdit v18中。

    高级>配置>编辑>新文件创建

    编码类型 :将新文件创建为ANSII

        6
  •  1
  •   D.Shawley    17 年前

    下一步是对文件执行hextump,并查看其中的内容。这听起来很像有一个光秃秃的CR在那里。记住,回车意味着 “在当前行的位置0写入下一个字符” hexdump -C file 甚至 od -t x1 file 寻找 0A 和 0D ( =CR, 0A =LF)。

        7
  •  0
  •   ryan_m    17 年前

    您可以远程编辑脚本。