使用给定的 URL 地址从终端运行 Safari,无需打开命令

使用给定的 URL 地址从终端运行 Safari,无需打开命令

我无法从终端打开 Safari。我尝试的命令是

/Applications/Safari/Contents/MacOS/Safari http://www.example.com

Safari 打开并尝试导航到以下网址:

file:///Current/Terminal/Path/Here/http:/www.example.com

我知道,我可以使用以下方法做到这一点open

open -a safari http://www.example.com

但我不能。整体情况相当复杂:我实际上正尝试从命令行 .NET 应用程序(使用 mono 运行)运行浏览器。我使用System.Process.NET 类来运行命令,并且我必须能够控制进程(获取进程 ID、检查它是否处于活动状态、必要时终止它等)。使用open命令不会返回正确的进程 ID(我尝试使用openswitch -W- 也没有帮助)。

答案1

一个解决方案是分两次执行

  • 打开 Safari
  • 使用 AppleScript 打开 URLtell application "Safari" to open location "http://www.google.com"

以下是一句话:

/Applications/Safari.app/Contents/MacOS/Safari & sleep 1 && osascript -e 'tell application "Safari" to open location "http://www.google.com"'

注意:您需要等待一段时间才能运行 AppleScript,因为 Safari 尚未启动。这sleep 1可能并非在所有情况下都有效,因为这实际上取决于 Safari 需要多长时间才能启动。

相关内容