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!