7

У меня проблемы с открытием Safari из терминала. Команда, которую я пробовал

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

Safari открывается и пытается перейти к URL:

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

Я знаю, я мог бы сделать это с помощью open:

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

Но я не могу. Общая картина довольно сложная: на самом деле я пытаюсь запустить браузер из командной строки .NET-приложения (которое работает с использованием моно). Я использую System.Process класс .NET для запуска команды, и я должен иметь возможность контролировать процесс (получить идентификатор процесса, проверить, активен ли он, убить его при необходимости и т.д.). Использование команды open не возвращает правильный идентификатор процесса (я пытался использовать open с ключом -W - тоже не помогает).

1 ответ1

6

Одно решение будет делать это в 2 раза

  • Открытое сафари
  • Используя AppleScript для открытия URL- tell 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"'

NB: вам нужно подождать, прежде чем запускать AppleScript, потому что Safari еще не запущен. Режим sleep 1 может работать не во всех случаях, поскольку он будет зависеть от того, сколько времени потребуется Safari для запуска.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .