commande shell macOS pour créer une nouvelle fenêtre Terminal

Bien sûr, vous pouvez facilement créer une nouvelle fenêtre Terminal à partir du menu ‘Shell’ ou en utilisant le raccourci clavier ⌘N (ou ⌘T). Mais dans certains cas, il peut être plus utile d’utiliser une commande shell.

Les nouvelles fenêtres créées avec le raccourci clavier ou à partir du menu auront toujours le répertoire personnel ~ comme répertoire de travail actuel. Ce que je veux, c’est une nouvelle fenêtre qui a par défaut le répertoire de travail actuel ou un répertoire personnalisé que je peux fournir avec un argument:

> new # opens a new terminal window at the current working directory> new ~/Desktop # opens a new terminal window at ~/Desktop

Pas de chance avec AppleScript

Après mon dernier succès en utilisant AppleScript, je pensais que ce serait à nouveau la meilleure solution. Malheureusement, cette pièce particulière du dictionnaire AppleScript est cassée. Les commandes make new window ou make new tab échouent avec des erreurs et j’ai essayé plusieurs combinaisons.

Après quelques recherches sur le web, il semble que cela soit cassé depuis longtemps. J’ai déposé un problème dans Feedback Assistant.

Vous pouvez créer une nouvelle fenêtre de terminal avec AppleScript en utilisant la commande do script dans le dictionnaire du terminal. (A ne pas confondre avec do shell script.) Donc cet AppleScript, fait en quelque sorte ce que je veux, mais semble encombrant.

tell application "Terminal" do script "cd ~/Desktop"end tell

Si vous connaissez une meilleure façon de créer une nouvelle fenêtre de Terminal ou, encore mieux, un onglet de Terminal avec AppleScript, alors faites-le moi savoir. (Pas de solutions de Scripting UI – celles-ci ont leurs propres problèmes.) J’ai quelques autres idées où cela pourrait être utile.

Entrez la commande open

Pendant ces recherches sur le web, j’ai également trouvé des suggestions pour utiliser la commande open, à la place:

> open -a Terminal ~/Documents

Ouvrira une nouvelle fenêtre de Terminal avec ~/Documents comme répertoire de travail. C’est déjà très proche de ce que je voulais.

J’ai créé cette fonction dans mon fichier de configuration du shell (bash, zsh):

# creates a new terminal windowfunction new() { if ]; then open -a "Terminal" "$PWD" else open -a "Terminal" "$@" fi}

Avec cela, je peux maintenant taper

> new Projects/desktoppr

et obtenir une nouvelle fenêtre de Terminal là. Ceci est très utile lorsqu’il est combiné avec la variable de substitution d’historique !$ (dernier argument de la commande précédente):

> mkdir Projects/great_new_tool> new !$

Et un effet secondaire inattendu, mais utile, est que la fonction new peut également ouvrir une session ssh dans une nouvelle fenêtre:

> new ssh://[email protected]

J’espère que vous trouverez cela utile, aussi!

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.