comando shell macOS per creare una nuova finestra del terminale

Certo, puoi facilmente creare una nuova finestra del terminale dal menu ‘Shell’ o usando la scorciatoia da tastiera ⌘N (o ⌘T). Ma in alcuni casi, può essere più utile usare un comando di shell.

Le nuove finestre create con la scorciatoia da tastiera o dal menu avranno sempre la directory home ~ come directory di lavoro corrente. Quello che voglio, è una nuova finestra che abbia come default la directory di lavoro corrente o una directory personalizzata che posso fornire con un argomento:

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

Nessuna fortuna con AppleScript

Dopo il mio ultimo successo con AppleScript, ho pensato che questa sarebbe stata di nuovo la soluzione migliore. Sfortunatamente, questo particolare pezzo del dizionario AppleScript è rotto. I comandi make new window o make new tab falliscono con errori e ho provato diverse combinazioni.

Dopo alcune ricerche sul web, sembra che questo sia stato rotto per molto tempo. Ho archiviato un problema in Feedback Assistant.

Puoi creare una nuova finestra del Terminale con AppleScript usando il comando do script nel dizionario del Terminale. (Da non confondere con do shell script.) Quindi questo AppleScript fa più o meno quello che voglio, ma sembra macchinoso.

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

Se conosci un modo migliore per creare una nuova finestra del Terminale o, ancora meglio, una scheda del Terminale con AppleScript, fammelo sapere. (Niente soluzioni di UI Scripting – quelle hanno i loro problemi.) Ho alcune altre idee in cui questo potrebbe essere utile.

Inserisci il comando open

Durante queste ricerche sul web, ho anche trovato suggerimenti per usare il comando open, invece:

> open -a Terminal ~/Documents

Aprirà una nuova finestra del Terminale con ~/Documents come directory di lavoro. Questo è già molto vicino a quello che volevo.

Ho creato questa funzione nel mio file di configurazione della shell (bash, zsh):

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

Con questo, ora posso digitare

> new Projects/desktoppr

e ottenere una nuova finestra del Terminale. Questo è molto utile se combinato con la variabile di sostituzione della cronologia !$ (ultimo argomento del comando precedente):

> mkdir Projects/great_new_tool> new !$

E un effetto collaterale inaspettato, ma utile, è che la funzione new può anche aprire una sessione ssh in una nuova finestra:

> new ssh://[email protected]

Spero che anche tu lo trovi utile!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.