Existe-t-il un moyen d'ouvrir un nouveau terminal à partir de la ligne de commande et d'exécuter une commande sur ce nouveau terminal (sur un Mac)?
par exemple, quelque chose comme:
Terminal -e ls
où ls
est exécuté dans le nouveau terminal.
Existe-t-il un moyen d'ouvrir un nouveau terminal à partir de la ligne de commande et d'exécuter une commande sur ce nouveau terminal (sur un Mac)?
par exemple, quelque chose comme:
Terminal -e ls
où ls
est exécuté dans le nouveau terminal.
Réponses:
Cela ouvre un nouveau terminal et exécute la commande "echo hello" à l'intérieur.
la source
osascript -e 'tell app "Terminal" to do script "echo hello"'
"$@"
shell mais dans le script osa?Vous pouvez le faire de manière détournée:
Les scripts shell qui ont l'extension
.command
et qui sont exécutables, peuvent être double-cliqués sur pour s'exécuter dans une nouvelle fenêtre de terminal. La commandeopen
, comme vous le savez probablement, équivaut à double-cliquer sur un objet Finder, donc cette procédure finit par exécuter les commandes dans le script dans une nouvelle fenêtre de terminal.Légèrement tordu, mais cela semble fonctionner. Je suis sûr qu'il doit y avoir un chemin plus direct vers cela (qu'est-ce que vous essayez réellement de faire?), Mais cela m'échappe en ce moment.
la source
Vous avez besoin de ruby 1.9 ou vous devrez ajouter une ligne
require 'rubygems'
avant que d'autres ne l'exigent et n'oubliez pas d'installergem rb-appscript
.J'ai nommé ce script
dt
(onglet dup), donc je peux simplement exécuterdt
pour ouvrir l'onglet dans le même dossier oudt ls
y exécuter également lals
commande.la source
Cela fonctionne, au moins sous Mountain Lion. Il initialise un shell interactif à chaque fois, bien que vous puissiez le remplacer après coup en l'appelant "macterm exec your-command ". Stockez-le dans bin / macterm dans votre répertoire personnel et chmod a + x bin / macterm:
la source
Je le ferais avec AppleScript. Vous pouvez le rationaliser en utilisant la commande osascript. Votre script serait quelque chose comme:
Si vous ne souhaitez y accéder que dans le terminal, vous pouvez omettre tout sauf l'instruction tell middle. Si vous voulez une nouvelle fenêtre au lieu d'un nouvel onglet, remplacez la touche t par n.
Je ne suis pas un AppleScripter suffisamment expérimenté pour savoir comment obtenir des arguments de ligne de commande, puis les retaper dans la nouvelle fenêtre, mais je suis sûr que c'est possible et pas trop difficile.
De plus, je pense que cela fonctionne et je ne suis pas en mesure de tester pour le moment, mais je suis presque sûr que vous pouvez démarrer un script shell avec une variante sur #! / Usr / bin / osascript -e, puis l'enregistrer en tant qu'exécutable comme tu veux. Ce qui, au moins dans ma tête, vous permettrait de taper quelque chose comme $ runinnewterm ls / Applications
la source