comandă shell macOS pentru a crea o nouă fereastră Terminal

Desigur, puteți crea cu ușurință o nouă fereastră Terminal din meniul ‘Shell’ sau folosind comanda rapidă de la tastatură ⌘N (sau ⌘T). Dar, în unele cazuri, poate fi mai util să folosiți o comandă shell.

Ferestrele noi create cu ajutorul comenzii rapide de la tastatură sau din meniu vor avea întotdeauna directorul principal ~ ca director de lucru curent. Ceea ce vreau eu, este o fereastră nouă care să aibă ca valoare implicită directorul de lucru curent sau un director personalizat pe care îl pot furniza cu un argument:

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

Nu am avut noroc cu AppleScript

După ultimul meu succes folosind AppleScript, m-am gândit că aceasta ar fi din nou cea mai bună soluție. Din păcate, această piesă particulară a dicționarului AppleScript este stricată. Comenzile make new window sau make new tab eșuează cu erori și am încercat mai multe combinații.

După câteva căutări pe internet, se pare că acest lucru este stricat de mult timp. Am depus o problemă în Feedback Assistant.

Puteți crea o nouă fereastră Terminal cu AppleScript folosind comanda do script din dicționarul Terminal. (A nu se confunda cu do shell script.) Deci, acest AppleScript, face oarecum ceea ce vreau, dar pare greoi.

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

Dacă știți o modalitate mai bună de a crea o nouă fereastră Terminal sau, chiar mai bine, o filă Terminal cu AppleScript, atunci vă rog să-mi spuneți. (Fără soluții UI Scripting – acelea au propriile lor probleme.) Am alte câteva idei în care acest lucru ar putea fi util.

Introduceți comanda open

În timpul acelor căutări pe web, am găsit și sugestii de a folosi comanda open, în schimb:

> open -a Terminal ~/Documents

Va deschide o nouă fereastră Terminal cu ~/Documents ca director de lucru. Acest lucru este deja foarte aproape de ceea ce am vrut.

Am creat această funcție în fișierul meu de configurare a shell-ului (bash, zsh):

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

Cu aceasta, pot acum să tastez

> new Projects/desktoppr

și să obțin o nouă fereastră Terminal acolo. Acest lucru este foarte util atunci când este combinat cu variabila de substituție a istoricului !$ (ultimul argument al comenzii anterioare):

> mkdir Projects/great_new_tool> new !$

Și un efect secundar neașteptat, dar util, este că funcția new poate, de asemenea, să deschidă o sesiune ssh într-o fereastră nouă:

> new ssh://[email protected]

Sper să vă fie de folos și vouă!

Lasă un răspuns

Adresa ta de email nu va fi publicată.