6 votes

Ouverture d'une fenêtre de terminal dans un répertoire spécifique à partir d'un script bash

Comment puis-je écrire un script bash dans Mac OS X qui ouvre une fenêtre Terminal dans un répertoire spécifique? Je suppose quelque chose comme :

open /Applications/Utilities/Terminal.app

Mais cela ne fait rien (peut-être que cela charge l'application Terminal qui est déjà ouverte au lieu de lancer une nouvelle fenêtre Terminal). Et bien sûr, cela ne cd pas dans un répertoire car je ne l'ai pas spécifié...

5voto

robzolkos Points 10006

Voici un petit script que j'ai écrit :

#!/usr/bin/osascript
on run argv
  set dir to quoted form of (first item of argv)
  tell app "Terminal" to do script "cd " & dir
end run

Si vous enregistrez ceci et le rendez exécutable

chmod +x nom_du_script

et ensuite exécutez-le

nom_du_script ~/Desktop

alors il ouvrira une nouvelle fenêtre de terminal et se déplacera dans le répertoire indiqué en argument.

5voto

Chris Page Points 7394

À partir de Mac OS X Lion 10.7, si vous ouvrez un dossier avec Terminal, il créera un nouveau terminal à cet emplacement. par exemple, vous pouvez glisser-déposer un dossier sur l'icône de l'application Terminal, ou dans une barre d'onglets pour créer un nouvel onglet, et il existe des Services (Nouveau terminal de dossier) que vous pouvez utiliser dans le menu contextuel pour ouvrir une nouvelle fenêtre ou onglet pour un dossier sélectionné dans Finder ou d'autres applications (ou même un chemin d'accès sélectionné dans du texte).

Pour faire l'équivalent à partir de la ligne de commande (ou d'un script shell) :

open -a Terminal /chemin/vers/dossier

Ceci est l'équivalent en ligne de commande de glisser-déposer le dossier sur l'icône de l'application Terminal. (Vous pouvez également fournir un chemin complet pour Terminal si vous souhaitez spécifier une copie/version particulière de l'application.)

0voto

JRome Points 1

Je ne suis pas sûr si ce qui suit fonctionne à partir d'un script bash, mais j'ai au moins découvert comment ouvrir des onglets spécifiques dans des répertoires spécifiques :

Dans les Préférences, sous Paramètres, vous copiez le profil que vous souhaitez normalement utiliser. Sous Shell, vous pouvez lui dire de "Exécuter la commande" : cd /quelque/répertoire. Vous voudrez également cocher "Exécuter à l'intérieur du shell". Facultativement, vous pouvez spécifier un titre sous Fenêtre.

Ajoutez plus de profils de cette manière.

Ensuite, fermez toutes les fenêtres de terminal, puis ouvrez un profil dans une nouvelle fenêtre, plus un autre profil dans un nouvel onglet, plus un autre profil dans un nouvel onglet. Vous avez maintenant une fenêtre avec trois onglets. Enregistrez ceci comme un groupe de fenêtres.

Désormais, chaque fois que vous avez Terminal en cours d'exécution, vous pouvez ouvrir ce groupe de fenêtres et vous obtiendrez une nouvelle fenêtre avec ces onglets dans ces répertoires.

Question ouverte : comment dire à Terminal d'ouvrir un nouveau groupe de fenêtres à partir d'un script bash ?

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X