98 votes

Exécution d'une commande dans une nouvelle fenêtre de terminal Mac OS X

J'ai été à essayer de comprendre comment exécuter une commande bash dans une nouvelle Max OS X Terminal.fenêtre d'application. Comme, par exemple, voici comment je courrais à ma commande dans un nouveau processus bash:

bash -c "my command here"

Mais ce réutilise le terminal existant au lieu d'en créer un nouveau. Je veux quelque chose comme:

Terminal.app -c "my command here"

Mais bien sûr, cela ne fonctionne pas. Je suis conscient de la "ouvrir un Terminal.application de la commande", mais je ne vois pas comment avancer des arguments pour le terminal, ou même si je n'ai que des arguments à utiliser.

Merci!

108voto

cobbal Points 37900

Une façon dont je peux penser de le faire comme ça est de créer un fichier .command et de le lancer comme suit:

 echo echo hello > sayhi.command; chmod +x sayhi.command; open sayhi.command
 

ou utilisez applescript:

 osascript -e 'tell application "Terminal" to do script "echo hello"'
 

bien que vous deviez soit échapper à beaucoup de guillemets doubles, soit ne pas être en mesure d'utiliser des guillemets simples

67voto

0scar Points 1759

Solution partielle:

Mettez les choses que vous voulez faire dans un shell-script, comme ça

 #!/bin/bash
ls
echo "yey!"
 

Et n'oubliez pas de " chmod +x file " pour le rendre exécutable. Ensuite vous pouvez

 open -a Terminal.app scriptfile
 

et il fonctionnera dans une nouvelle fenêtre. Ajoutez ' bash ' à la fin du script pour empêcher la nouvelle session de se fermer. (Bien que vous deviez peut-être comprendre comment charger les fichiers rc des utilisateurs, etc.)

8voto

Al Chou Points 127

Si cela vous intéresse, voici un équivalent pour iTerm:

 #!/bin/sh
osascript <<END
tell application "iTerm"
 tell the first terminal
  launch session "Default Session"
  tell the last session
   write text "cd \"`pwd`\";$1;exit"
  end tell
 end tell
end tell
END
 

3voto

Craig Walker Points 13478

J'ai trouvé ce script shell avec Google et cela fonctionne comme un charme.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X