windows - 在 Windows 中创建的 mac 命令文件中的换行符

标签 windows macos bash newline line-endings

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

双击后该文件将在 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 机器,您应该只会看到 $。

关于windows - 在 Windows 中创建的 mac 命令文件中的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23809641/

相关文章:

bash - 检查 bash 中是否存在交换空间

bash - Bash脚本中的Sudo SU无需询问用户密码

mysql - 如何在不设置环境变量或不在 Windows 中导航 MySQL 服务文件夹的情况下使用 cmd 导航到 MySQL 提示符

windows - 在适用于 Linux 的 Windows 子系统上的 Ubuntu 上运行 Docker

macos - 我的堆栈程序的第一个变量是什么?

macos - 如何在沙盒应用程序中添加调度?

Windows Callgrind 结果浏览器,替代 KCacheGrind

node.js - 对于 npm 依赖项,PowerShell 在安装 VS Build 工具后卡住了,它说它仍在等待安装程序日志文件来安装 python?

c - gcc 在 mac OS X 上默认在 C 中链接数学库?

bash - 如何在 shell 脚本中增加版本号?