Запустите 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 для запуска.