在windows中创建的mac命令文件中的换行符
我正在windows中使用JavaScript activexobject创建一个命令文件 双击后,此文件将在Mac上运行 我正在把文件写为在windows中创建的mac命令文件中的换行符,windows,macos,bash,newline,line-endings,Windows,Macos,Bash,Newline,Line Endings,我正在windows中使用JavaScript activexobject创建一个命令文件 双击后,此文件将在Mac上运行 我正在把文件写为 script.write("#!/bin/bash\r"); script.write('cd "$(dirname "$0")"\r'); 附加的\r用于以Mac结尾的回车线 但这不起作用。命令不执行,只是开始和结束。没有cd发生 我确信这个问题与行尾有关,因为在Mac中用TextEdit打开命令文件后,当我编辑行尾时(通过删除换行符并再次使用返回键添
script.write("#!/bin/bash\r");
script.write('cd "$(dirname "$0")"\r');
附加的\r
用于以Mac结尾的回车线
但这不起作用。命令不执行,只是开始和结束。没有cd
发生
我确信这个问题与行尾有关,因为在Mac中用TextEdit打开命令文件后,当我编辑行尾时(通过删除换行符并再次使用返回键添加换行符),它会起作用
如何在write方法中解决此问题?您应该尝试编写“\n”而不是“\r”。回车仅用于OSX之前的机器
如果您想直观地看到行尾,可以在Mac上打开vim并键入
:set list
。所有新行将显示为$,回车为^M。如果这是OSX机器,您应该只看到$。Mac OS 9和更早版本中需要\r
行结尾;Mac OS X使用常规Unix样式的\n
行结尾。另外,您是否意识到脚本中的cd
命令只会影响脚本(除非您使用source
或
读取/执行脚本)。