我可以双击在Mac上运行.rbw文件吗?

时间:2016-01-13 14:38:31

标签: ruby macos

我可以使用ruby filename.rbw启动.rbw文件。

但是我可以双击打开它吗?

1 个答案:

答案 0 :(得分:1)

你可以,但需要一点设置。您无法直接执行此操作的原因是OS X只允许您将应用程序与文件类型相关联 - 您无法将文件类型与任何旧的可执行文件相关联。在这个答案中有关于OS X行为的一些很好的信息:How to run a shell script in OS X by double-clicking?

以下是您需要采取的步骤:

1。创建运行Ruby脚本的应用程序

这比听起来容易。首先,运行Automator并在“选择文档类型”对话框中选择“应用程序”。然后,从左侧的“操作”菜单中,双击“运行AppleScript”(使用搜索框快速找到它)。现在将以下脚本粘贴到框中:

on run {input}
    set filepath to quoted form of POSIX path of input
    do shell script "ruby " & filepath
end run

这是非常基本的AppleScript。它的作用是获取输入,它将是您双击文件的文件名,并以该文件名作为参数运行ruby

现在使用“运行Ruby脚本”之类的名称保存应用程序。你可以将它保存在任何你想要的地方,但我认为~/Applications是一个不错的选择。

2。告诉OS X使用刚刚创建的应用程序打开.rbw个文件

在Finder中查找.rbw文件。右键单击它并选择打开方式,然后选择其他... 。将出现“选择应用程序”对话框。在底部,在启用下拉菜单中选择“所有应用程序”。导航到刚刚创建的“运行Ruby脚本”应用程序并选择它。最后,选中始终打开复选框,然后点击打开

输出怎么样?

上面重复了Windows上.rbw文件的行为,也就是说脚本是静默执行的 - 没有打开终端窗口而且看不到输出。

如果你想捕获输出你可以改变AppleScript在Terminal或iTerm中运行命令 - 如果你的脚本是交互式的,你可能必须这样做,但它超出了问题的范围 - 但我认为更简单的解决方案是在默认文本编辑器中显示输出,这样就可以完成:

on run {input}
    set filepath to quoted form of POSIX path of input
    do shell script "ruby " & filepath & " | open -f "
end run

这只是将ruby的输出传递给open -f,它将输出写入临时文件并在默认文本编辑器中打开它,例如:文本编辑。