J'ai des problèmes pour ouvrir Safari depuis le terminal. La commande que j'ai essayée est
/Applications/Safari/Contents/MacOS/Safari http://www.example.com
Safari s'ouvre et tente de naviguer vers l'URL:
file:///Current/Terminal/Path/Here/http:/www.example.com
Je sais, je pourrais le faire en utilisant open
:
open -a safari http://www.example.com
Mais je ne peux pas. La situation dans son ensemble est assez compliquée: j'essaie en fait d'exécuter le navigateur à partir d'une application .NET en ligne de commande (qui utilise mono). J'utilise la classe System.Process
.NET pour exécuter la commande et je dois être capable de contrôler le processus (obtenir l'identifiant du processus, vérifier s'il est actif, le tuer si nécessaire, etc.). L'utilisation de la commande open
ne renvoie pas l'ID de processus correct (j'ai essayé d'utiliser open
avec -W
switch - n'aide pas non plus).
Une solution serait le faire en 2 fois
tell application "Safari" to open location "http://www.google.com"
Voici un oneliner:
/Applications/Safari.app/Contents/MacOS/Safari & sleep 1 && osascript -e 'tell application "Safari" to open location "http://www.google.com"'
NB: vous devez attendre avant d'exécuter AppleScript car Safari n'est pas encore démarré. Le sleep 1
peut ne pas fonctionner dans tous les cas, car cela dépend vraiment du temps nécessaire à Safari pour démarrer.