Запустите Safari из терминала с заданным URL-адресом без команды open

У меня проблемы с открытием 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-приложения (которое работает с использованием mono). я использую System.Process Класс.NET для запуска команды, и я должен иметь возможность контролировать процесс (получить идентификатор процесса, проверить, активен ли он, убить его при необходимости и т. Д.). С помощью open команда не возвращает правильный идентификатор процесса (я пытался использовать open с -W Переключатель - тоже не помогает).

1 ответ

Решение

Одно решение будет делать это в 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"'

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

Другие вопросы по тегам