Domanda

Come faccio a scrivere uno script bash in Mac OS X che si apre una finestra di Terminale in una directory specifica? Mi piacerebbe pensare qualcosa del tipo:

open /Applications/Utilities/Terminal.app

Ma che non fa nulla (forse è caricare l'applicazione Terminale, che è già aperto invece di lanciare una nuova finestra Terminale). E, naturalmente, non è così cd in una directory come non ho specificato che ...

È stato utile?

Soluzione

Ecco un piccolo script Ho bussato fino:

#!/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 si salva questo e renderlo eseguibile

chmod +x script_filename

e quindi eseguirlo

script_filename ~/Desktop

, allora si aprirà una nuova finestra di terminale e passare alla directory nell'argomento.

Altri suggerimenti

A partire da Mac OS X Lion 10.7, se si apre una cartella con Terminal creerà un nuovo terminale in quella posizione. ad esempio, è possibile trascinare una cartella sull'icona applicazione Terminale, o in una barra delle schede per creare una nuova scheda, e non ci sono servizi (nuovo terminale a cartella) è possibile utilizzare dal menu contestuale per aprire una nuova finestra o scheda per un cartella selezionata in Finder o altre applicazioni (o anche un percorso selezionato nel testo).

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

open -a Terminal /path/to/folder

Questa è la riga di comando equivalente della trascinando la cartella sull'icona dell'applicazione Terminale. (Si può anche fornire un percorso completo per il terminale, se si desidera specificare una particolare copia / versione dell'applicazione.)

Non sono sicuro se le seguenti opere provenienti da uno script bash, ma almeno ho trovato il modo di schede specifiche aperte in directory specifiche:

Nelle preferenze, in Impostazioni, si copia il profilo che si farebbe normalmente come per l'uso. Sotto Shell, si può dire che a "comando Esegui": cd /some/directory. Si vuole anche verificare "Run all'interno della shell". Facoltativamente, è possibile specificare un titolo sotto la finestra.

Aggiungi più profili in questo modo.

Quindi chiudere tutte le finestre di terminale, quindi aprire un profilo in una nuova finestra, più un altro profilo in una nuova scheda, più un altro profilo in una nuova scheda. Ora avete una finestra con tre schede. Salva questo come un gruppo di finestre.

Da ora in poi, ogni volta che avete in esecuzione Terminal, è possibile aprire questo gruppo finestra, e si otterrà una nuova finestra con queste schede in queste directory.

Apri domanda: come faccio a dire Terminal per aprire una nuova gruppo di finestre, da uno script bash

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a apple.stackexchange
scroll top