Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在windows中创建的mac命令文件中的换行符_Windows_Macos_Bash_Newline_Line Endings - Fatal编程技术网

在windows中创建的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打开命令文件后,当我编辑行尾时(通过删除换行符并再次使用返回键添

我正在windows中使用JavaScript activexobject创建一个命令文件

双击后,此文件将在Mac上运行

我正在把文件写为

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
读取/执行脚本)。