Führen Sie Safari vom Terminal mit der angegebenen URL-Adresse ohne offenen Befehl aus

9

Ich habe Probleme beim Öffnen von Safari vom Terminal aus. Befehl, den ich versucht habe, ist

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

Safari wird geöffnet und versucht, zur URL zu navigieren:

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

Ich weiß, ich könnte es tun mit open:

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

Aber ich kann nicht. Das Gesamtbild ist ziemlich kompliziert: Ich versuche tatsächlich, den Browser über die .NET-Befehlszeilenanwendung (die mit Mono ausgeführt wird) auszuführen. Ich verwende die System.Process.NET-Klasse, um den Befehl auszuführen, und ich muss in der Lage sein, den Prozess zu steuern (Prozess-ID abrufen, prüfen, ob er aktiv ist, ihn bei Bedarf beenden usw.). Der openBefehl using gibt nicht die richtige Prozess-ID zurück (ich habe versucht, ihn openmit -Wswitch zu verwenden - hilft auch nicht).

MarcinJuraszek
quelle

Antworten:

6

Eine Lösung würde dies in 2 Mal tun

  • Offene Safari
  • Verwenden von AppleScript zum Öffnen der URL tell application "Safari" to open location "http://www.google.com"

Hier ist ein Oneliner:

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

Hinweis: Sie müssen warten, bevor Sie AppleScript ausführen, da Safari noch nicht gestartet wurde. Die sleep 1möglicherweise nicht in jedem Fall , da es wirklich hängt davon ab , wie viel Zeit Safari beginnen müssen.

Matthieu Riegler
quelle
Es wird etwas kniffliger, weil ich versuche, es aus der Process.NET-Klasse zu starten, aber ich konnte Probleme mit Ihrer Lösung umgehen, und deshalb setze ich es als akzeptiert. Vielen Dank!
MarcinJuraszek