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


6

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

open /Applications/Utilities/Terminal.app

Mais cela ne fait rien (il charge peut-être l'application Terminal déjà ouverte au lieu de lancer une nouvelle fenêtre Terminal). Et bien sûr, il ne se trouve pas dans un répertoire car je ne l’ai pas précisé ...

Réponses:


5

Voici un petit script que j'ai confectionné:

#!/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 script_filename

et ensuite l'exécuter

script_filename ~/Desktop

alors il ouvrira une nouvelle fenêtre de terminal et passera au répertoire dans l'argument.


5

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

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

open -a Terminal /path/to/folder

C'est l'équivalent en ligne de commande de glisser 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.)


Fonctionne parfaitement !!
at01

0

Je ne sais pas si ce qui suit fonctionne à partir d'un script bash, mais au moins j'ai 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 voudriez normalement utiliser. Sous Shell, vous pouvez le dire « Exécuter commande »: cd /some/directory. Vous voudrez aussi cocher "Run inside shell". Vous pouvez éventuellement spécifier un titre sous Fenêtre.

Ajoutez d'autres profils de cette manière.

Fermez ensuite toutes les fenêtres du 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. Maintenant, vous avez une fenêtre avec trois onglets. Enregistrez ceci en tant que groupe de fenêtres.

À partir de maintenant, chaque fois que vous avez un 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?


Cela ne fonctionne que si vous voulez que la nouvelle fenêtre s'ouvre avec votre shell par défaut. Cela ne fonctionne pas, par exemple, si votre shell par défaut est tcsh et que vous souhaitez ouvrir une nouvelle fenêtre de terminal exécutant bash dans un certain répertoire.
Mitchell Model
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.