macOS shell commando om een nieuw Terminal venster te maken

Natuurlijk kunt u gemakkelijk een nieuw Terminal venster maken vanuit het ‘Shell’ menu of door de ⌘N (of ⌘T) sneltoets te gebruiken. Maar in sommige gevallen kan het handiger zijn om een shell commando te gebruiken.

Nieuwe vensters die met de sneltoets of vanuit het menu worden aangemaakt, zullen altijd de home directory ~ als de huidige werkdirectory hebben. Wat ik wil, is een nieuw venster dat standaard de huidige werkdirectory heeft of een aangepaste directory die ik kan opgeven met een argument:

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

Geen geluk met AppleScript

Na mijn laatste succes met AppleScript, dacht ik dat dit weer de beste oplossing zou zijn. Helaas is dit specifieke stuk van het AppleScript woordenboek kapot. De make new window of make new tab commando’s mislukken met fouten en ik heb verschillende combinaties geprobeerd.

Na wat zoeken op het web, lijkt het erop dat dit al een lange tijd kapot is. Ik heb een probleem ingediend in Feedback Assistant.

U kunt een nieuw Terminal-venster maken met AppleScript met behulp van het do script commando in het Terminal woordenboek. (Niet te verwarren met do shell script.) Dus deze AppleScript doet min of meer wat ik wil, maar lijkt omslachtig.

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

Als je een betere manier weet om een nieuw Terminal venster of, nog beter, een Terminal tabblad te maken met AppleScript, laat het me dan weten. (Geen UI Scripting oplossingen – die hebben hun eigen problemen.) Ik heb nog een paar andere ideeën waarbij dit van pas kan komen.

Voeg het commando open in

Tijdens het zoeken op het web vond ik ook suggesties om in plaats daarvan het commando open te gebruiken:

> open -a Terminal ~/Documents

Open een nieuw Terminal-venster met ~/Documents als de werkdirectory. Dit komt al heel dicht in de buurt van wat ik wilde.

Ik heb deze functie gemaakt in mijn shell configuratie bestand (bash, zsh):

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

Met dit, kan ik nu

> new Projects/desktoppr

typen en daar een nieuw Terminal venster krijgen. Dit is erg handig in combinatie met de geschiedenis substitutie variabele !$ (laatste argument van vorig commando):

> mkdir Projects/great_new_tool> new !$

En een onverwacht, maar nuttig neveneffect is dat de new functie ook een ssh sessie kan openen in een nieuw venster:

> new ssh://[email protected]

Hoop dat je dit ook nuttig vindt!

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.