macOS-skalkommando för att skapa ett nytt terminalfönster

Självklart kan du enkelt skapa ett nytt terminalfönster från menyn ”Shell” eller med hjälp av tangentbordsgenvägen ⌘N (eller ⌘T). Men i vissa fall kan det vara mer användbart att använda ett skalkommando.

Nya fönster som skapas med tangentbordsgenvägen eller från menyn kommer alltid att ha hemkatalogen ~ som aktuell arbetskatalog. Vad jag vill ha är ett nytt fönster som har som standard den aktuella arbetskatalogen eller en egen katalog som jag kan ange med ett argument:

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

Ingen lycka med AppleScript

Efter min senaste framgång med AppleScript trodde jag att detta skulle vara den bästa lösningen igen. Tyvärr är just den här delen av AppleScript-ordboken trasig. Kommandona make new window eller make new tab misslyckas med fel och jag har provat flera kombinationer.

Efter lite sökning på webben ser det ut som om detta har varit trasigt under en lång tid. Jag har lämnat in ett problem i Feedback Assistant.

Du kan skapa ett nytt Terminal-fönster med AppleScript genom att använda kommandot do script i Terminal-ordboken. (Inte att förväxla med do shell script.) Så det här AppleScript gör på sätt och vis vad jag vill, men verkar besvärligt.

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

Om du känner till ett bättre sätt att skapa ett nytt Terminal-fönster eller, ännu bättre, en Terminal-flik med AppleScript, så låt mig veta. (Inga UI Scripting-lösningar – de har sina egna problem.) Jag har några andra idéer där detta kan komma till nytta.

Ange kommandot open

Under dessa sökningar på webben hittade jag också förslag på att använda kommandot open i stället:

> open -a Terminal ~/Documents

Öppnar ett nytt Terminalfönster med ~/Documents som arbetskatalog. Detta är redan väldigt nära det jag ville ha.

Jag skapade den här funktionen i min skalkonfigurationsfil (bash, zsh):

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

Med detta kan jag nu skriva

> new Projects/desktoppr

och få ett nytt Terminalfönster där. Detta är mycket användbart i kombination med historikersättningsvariabeln !$ (sista argumentet i föregående kommando):

> mkdir Projects/great_new_tool> new !$

En oväntad men användbar bieffekt är att funktionen new också kan öppna en ssh-session i ett nytt fönster:

> new ssh://[email protected]

Hoppas att du också finner detta användbart!

Lämna ett svar

Din e-postadress kommer inte publiceras.