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!