macOS shell-kommando til at oprette et nyt Terminal-vindue

Du kan selvfølgelig nemt oprette et nyt Terminal-vindue fra menuen ‘Shell’ eller ved at bruge tastaturgenvejen ⌘N (eller ⌘T). Men i nogle tilfælde kan det være mere nyttigt at bruge en shell-kommando.

Nye vinduer, der oprettes med tastaturgenvejen eller fra menuen, vil altid have hjemmemappen ~ som den aktuelle arbejdsmappe. Det, jeg ønsker, er et nyt vindue, der som standard har den aktuelle arbejdsmappe eller en brugerdefineret mappe, som jeg kan angive med et argument:

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

Ingen held med AppleScript

Efter min sidste succes med AppleScript, tænkte jeg, at dette ville være den bedste løsning igen. Desværre er netop denne del af AppleScript-ordbogen i stykker. Kommandoerne make new window eller make new tab fejler med fejl, og jeg har prøvet flere kombinationer.

Efter lidt søgning på nettet ser det ud til, at dette har været ødelagt i lang tid. Jeg har indgivet et problem i Feedback Assistant.

Du kan oprette et nyt Terminal-vindue med AppleScript ved hjælp af kommandoen do script i Terminal-ordbogen. (Ikke at forveksle med do shell script.) Så denne AppleScript, gør på en måde det, jeg ønsker, men virker besværlig.

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

Hvis du kender en bedre måde at oprette et nyt Terminal-vindue eller, endnu bedre, en Terminal-fane med AppleScript, så lad mig vide det. (Ingen UI Scripting-løsninger – de har deres egne problemer.) Jeg har et par andre idéer, hvor dette kan være nyttigt.

Indtast kommandoen open

Under disse søgninger på nettet fandt jeg også forslag om at bruge kommandoen open i stedet:

> open -a Terminal ~/Documents

Åbner et nyt Terminal-vindue med ~/Documents som arbejdskatalog. Dette er allerede rigtig tæt på det, jeg ønskede.

Jeg oprettede denne funktion i min shell-konfigurationsfil (bash, zsh):

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

Med dette kan jeg nu skrive

> new Projects/desktoppr

og få et nyt Terminal-vindue der. Dette er meget nyttigt, når det kombineres med history-substitutionsvariablen !$ (sidste argument i forrige kommando):

> mkdir Projects/great_new_tool> new !$

Og en uventet, men nyttig bivirkning er, at new-funktionen også kan åbne en ssh-session i et nyt vindue:

> new ssh://[email protected]

Håber du også finder dette nyttigt!

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.