OSX‘使用’bash 脚本打开

OSX‘使用’bash 脚本打开

我有一个 bash 脚本,事实上可能有很多,我希望能够用它们在 OSX 的 finder 中打开文件。

这是一个非常非常简单的概念,但由于某种原因,bash 脚本在 Finder 的“打开方式”对话框中显示为灰色。

我知道有多种使用 applescript 或打包为应用程序的方法...但我还没能弄清楚这些,而且我真的不想为了这项简单的任务而学习另一种语言——有人可以告诉我如何做到这一点吗?

谢谢!

答案1

这不可能。启动服务使用应用程序标识符,而 bash 脚本没有它们。

您需要使用 Automator 创建一个包装应用程序。

  1. 启动 Automator
  2. 选择应用
  3. 寻找运行 Shell 脚本动作并将其添加到右侧。
  4. 传递输入作为参数
  5. 把你的脚本放进去
  6. 保存在某处

这是我的版本,使用咆哮命令行实用程序:

在此处输入图片描述

结果:

在此处输入图片描述


您可以看到此更改对~/Library/Preferences/com.apple.LaunchServices.plist全部更改

在此处输入图片描述

(“测试”是我为 Automator 应用程序起的名字)

答案2

我按照 Daniel Beck 的说明进行了一些修改,使其可以用于我想在 Mac 上的 Chrome(Firefox 也可以)中打开的 URL 文件。

我使用的脚本是:

sed 's/^URL=/URL=/' "$1" | grep -m 1 '^URL=' | sed 's/^URL=//' | tr -d '\r' | xargs open -a "Google Chrome"

这将从典型的 URL 文件中解析出 URL= 行,如下所示:

[InternetShortcut]
URL=http://www.docircuits.com/pricing
IDList=
HotKey=0
IconFile=O:\Apps\Firefox\Data\profile\shortcutCache\4t0JW4mY1qRPhiYz1fY3dw==.ico
IconIndex=0

将 Automator 脚本保存到某个位置,例如 ~/Library 目录。我将它命名为 OpenUrl.app。

现在转到某个 URL 文件并打开“获取信息”弹出窗口。将“打开方式”命令更改为 OpenUrl.app 脚本。只使用一个命令进行测试或单击“更改全部...”第一次单击时出现错误,但第二次似乎有效。

在开发此程序时,我确实遇到了“运行 Shell 脚本”错误,但这是由于脚本中的实际错误造成的。我认为 Daniel 的脚本的关键问题是它无法处理您尝试打开的文件名中的空格。

答案3

使用reattach-to-user-namespace,无论是回购或使用brew install reattach-to-user-namespace。这在 Sierra 中有效,但我不确定是否适用于其他操作系统。

安装后,在 bash 脚本中使用它,如下所示:

重新连接到用户命名空间打开 a_cool_file.png

相关内容