příkaz shellu macOS pro vytvoření nového okna Terminálu
Nové okno Terminálu můžete samozřejmě snadno vytvořit z nabídky „Shell“ nebo pomocí klávesové zkratky ⌘N (nebo ⌘T). V některých případech však může být užitečnější použít příkaz shellu.
Nová okna vytvořená pomocí klávesové zkratky nebo z nabídky budou mít jako aktuální pracovní adresář vždy domovský adresář ~
. To, co chci, je nové okno, které ve výchozím nastavení nastaví aktuální pracovní adresář nebo vlastní adresář, který mohu zadat argumentem:
> new # opens a new terminal window at the current working directory> new ~/Desktop # opens a new terminal window at ~/Desktop
S AppleScriptem se mi to nedaří
Po posledním úspěchu s použitím AppleScriptu jsem si myslel, že to bude opět nejlepší řešení. Bohužel právě tato část slovníku AppleScript je nefunkční. Příkazy make new window
nebo make new tab
selhávají s chybami a vyzkoušel jsem několik kombinací.
Po chvíli hledání na webu to vypadá, že je to rozbité už dlouho. Vyplnil jsem problém ve Feedback Assistant.
Nové okno Terminálu můžete vytvořit pomocí AppleScriptu pomocí příkazu do script
ve slovníku Terminálu. (Nezaměňovat s do shell script
.) Takže tento AppleScript tak trochu dělá to, co chci, ale zdá se mi těžkopádný.
tell application "Terminal" do script "cd ~/Desktop"end tell
Pokud víte o lepším způsobu vytvoření nového okna Terminálu nebo ještě lépe karty Terminálu pomocí AppleScriptu, dejte mi prosím vědět. (Žádné řešení pomocí skriptů uživatelského rozhraní – ty mají své vlastní problémy.) Mám několik dalších nápadů, kde by se to mohlo hodit.
Zadejte příkaz open
Při tom hledání na webu jsem také našel návrhy, jak místo toho použít příkaz open
:
> open -a Terminal ~/Documents
Otevře nové okno Terminálu s ~/Documents
jako pracovním adresářem. To už je opravdu blízko tomu, co jsem chtěl.
Ve svém konfiguračním souboru shellu (bash, zsh) jsem vytvořil tuto funkci:
# creates a new terminal windowfunction new() { if ]; then open -a "Terminal" "$PWD" else open -a "Terminal" "$@" fi}
Pomocí této funkce mohu nyní napsat
> new Projects/desktoppr
a získat tam nové okno Terminálu. To je velmi užitečné v kombinaci se substituční proměnnou historie !$
(poslední argument předchozího příkazu):
> mkdir Projects/great_new_tool> new !$
A nečekaným, ale užitečným vedlejším efektem je, že funkce new
může také otevřít relaci ssh v novém okně:
> new ssh://[email protected]
Doufám, že se vám to také bude hodit!