Apertura di una finestra di terminale in una directory specifica da uno script di bash

6

Come posso scrivere uno script bash in Mac OS X che apre una finestra Terminale in una directory specifica? Assumerei qualcosa del tipo:

open /Applications/Utilities/Terminal.app

Ma questo non fa nulla (forse sta caricando l'applicazione Terminale che è già aperta invece di lanciare una nuova finestra di Terminale). E ovviamente non inserisce cd in una directory perché non ho specificato che ...

    
posta at01 28.04.2011 - 01:32
fonte

3 risposte

5

Ecco una piccola sceneggiatura che ho buttato giù:

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

Se salvi questo e rendilo eseguibile

chmod +x script_filename

e quindi eseguirlo

script_filename ~/Desktop

quindi aprirà una nuova finestra di terminale e cambierà nella directory nell'argomento.

    
risposta data 28.04.2011 - 02:01
fonte
5

A partire da Mac OS X Lion 10.7, se apri una cartella con Terminal, verrà creato un nuovo terminale in quella posizione. ad esempio, puoi trascinare una cartella sull'icona dell'applicazione Terminale, o in una barra delle schede per creare una nuova scheda, e ci sono Servizi (Nuovo Terminale nella Cartella) che puoi usare dal menu contestuale per aprire una nuova finestra o scheda per un cartella selezionata in Finder o altre applicazioni (o anche un nome di percorso selezionato nel testo).

Per fare l'equivalente dalla riga di comando (o da uno script di shell):

open -a Terminal /path/to/folder

Questo è l'equivalente della riga di comando di trascinare la cartella sull'icona dell'applicazione Terminale. (Puoi anche fornire un percorso completo per Terminal se desideri specificare una particolare copia / versione dell'applicazione.)

    
risposta data 14.08.2011 - 02:55
fonte
0

Non sono sicuro che quanto segue funzioni da uno script bash, ma almeno ho scoperto come aprire schede specifiche in directory specifiche:

Nelle Preferenze, sotto Impostazioni, copi il profilo che vorresti normalmente utilizzare. Sotto Shell, puoi dire a "Esegui comando": cd /some/directory . Dovrai anche controllare "Esegui all'interno della shell". Opzionalmente, puoi specificare un titolo sotto Finestra.

Aggiungi altri profili in questo modo.

Quindi chiudi tutte le finestre del terminale, quindi apri un profilo in una nuova finestra, più un altro profilo in una nuova scheda, più un altro profilo in una nuova scheda. Ora hai una finestra con tre schede. Salva questo come un gruppo di finestre.

Da ora in poi, ogni volta che il terminale è in esecuzione, puoi aprire questo gruppo di finestre e otterrai una nuova finestra con queste schede in queste directory.

Domanda aperta: come faccio a dire a Terminal di aprire un nuovo gruppo di finestre, da uno script bash?

    
risposta data 10.10.2012 - 23:31
fonte

Leggi altre domande sui tag