Запустить 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 switch-тоже не помогает).

30
задан MarcinJuraszek
17.02.2023 10:58 Количество просмотров материала 2861
Распечатать страницу

1 ответ

одно решение сделает это в 2 раза

  • открыть safari
  • использование 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 еще не запущен. The sleep 1может не работать в каждом случае, так как это будет действительно зависеть от того, сколько времени Safari нужно будет начать.

6
отвечен Matthieu Riegler 2023-02-18 18:46

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх