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!