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).

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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.