polecenie powłoki macOS do utworzenia nowego okna Terminala
Oczywiście, można łatwo utworzyć nowe okno Terminala z menu 'Powłoka’ lub za pomocą skrótu klawiaturowego ⌘N (lub ⌘T). Ale w niektórych przypadkach bardziej użyteczne może być użycie polecenia powłoki.
Nowe okna utworzone skrótem klawiaturowym lub z menu zawsze będą miały katalog domowy ~
jako bieżący katalog roboczy. To, czego chcę, to nowe okno, które domyślnie ustawia się na bieżący katalog roboczy lub niestandardowy katalog, który mogę podać za pomocą argumentu:
> new # opens a new terminal window at the current working directory> new ~/Desktop # opens a new terminal window at ~/Desktop
Bez powodzenia z AppleScript
Po moim ostatnim sukcesie przy użyciu AppleScript, pomyślałem, że to będzie najlepsze rozwiązanie ponownie. Niestety, ten konkretny fragment słownika AppleScript jest zepsuty. Polecenia make new window
lub make new tab
zawodzą z błędami i próbowałem kilku kombinacji.
Po kilku poszukiwaniach w sieci, wygląda na to, że jest to zepsute od dłuższego czasu. Zgłosiłem problem w Feedback Assistant.
Możesz utworzyć nowe okno Terminala z AppleScript używając polecenia do script
w słowniku Terminala. (Nie mylić z do shell script
.) Więc ten AppleScript, jakby robi to co chcę, ale wydaje się uciążliwy.
tell application "Terminal" do script "cd ~/Desktop"end tell
Jeśli znasz lepszy sposób na tworzenie nowego okna Terminala lub, nawet lepiej, zakładki Terminala za pomocą AppleScript, to proszę daj mi znać. (Bez rozwiązań UI Scripting – te mają swoje własne problemy.) Mam kilka innych pomysłów, gdzie to może się przydać.
Wprowadź polecenie open
Podczas tych poszukiwań w sieci, znalazłem również sugestie, aby użyć polecenia open
, zamiast:
> open -a Terminal ~/Documents
Otworzy nowe okno Terminala z ~/Documents
jako katalogiem roboczym. To już jest naprawdę blisko tego, co chciałem.
Utworzyłem tę funkcję w moim pliku konfiguracyjnym powłoki (bash, zsh):
# creates a new terminal windowfunction new() { if ]; then open -a "Terminal" "$PWD" else open -a "Terminal" "$@" fi}
Z tym, mogę teraz wpisać
> new Projects/desktoppr
i uzyskać nowe okno Terminala. Jest to bardzo użyteczne w połączeniu ze zmienną zastępczą historii !$
(ostatni argument poprzedniego polecenia):
> mkdir Projects/great_new_tool> new !$
I nieoczekiwanym, ale użytecznym efektem ubocznym jest to, że funkcja new
może również otworzyć sesję ssh w nowym oknie:
> new ssh://[email protected]
Mam nadzieję, że tobie też się to przyda!