macOS shell parancs egy új Terminál ablak létrehozásához

Természetesen könnyen létrehozhat egy új Terminál ablakot a ‘Shell’ menüből vagy a ⌘N (vagy ⌘T) billentyűparanccsal. Bizonyos esetekben azonban hasznosabb lehet egy shell parancs használata.

A billentyűparanccsal vagy a menüből létrehozott új ablakoknál mindig a ~ home könyvtár lesz az aktuális munkakönyvtár. Amit én szeretnék, az egy új ablak, ami alapértelmezés szerint az aktuális munkakönyvtárat vagy egy egyéni könyvtárat, amit megadhatok egy argumentummal:

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

Nem jártam szerencsével az AppleScript segítségével

A legutóbbi sikerem után, amikor az AppleScriptet használtam, úgy gondoltam, hogy ismét ez lesz a legjobb megoldás. Sajnos az AppleScript szótárnak ez a bizonyos darabja elromlott. A make new window vagy make new tab parancsok hibásan sikertelenek, és már több kombinációt is kipróbáltam.

Némi internetes keresgélés után úgy tűnik, hogy ez már régóta elromlott. Jelentettem egy problémát a Feedback Assistantban.

A Terminál szótárban található do script paranccsal új Terminál ablakot hozhatsz létre AppleScript segítségével. (Nem tévesztendő össze a do shell script paranccsal.) Tehát ez az AppleScript nagyjából azt teszi, amit szeretnék, de nehézkesnek tűnik.

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

Ha tudsz egy jobb módszert egy új Terminál ablak vagy még jobb esetben egy Terminál fül létrehozására AppleScript segítségével, akkor kérlek, szólj. (Nincsenek UI Scripting megoldások – azoknak megvannak a maguk problémái.) Van még néhány ötletem, ahol ez hasznos lehet.

Az open parancs beírása

A webes keresések során találtam olyan javaslatokat is, hogy helyette a open parancsot használjam:

> open -a Terminal ~/Documents

Megnyit egy új Terminal ablakot a ~/Documents munkakönyvtárral. Ez már nagyon közel áll ahhoz, amit szerettem volna.

Ezt a funkciót hoztam létre a shell konfigurációs fájlomban (bash, zsh):

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

Ezzel most már be tudom írni a

> new Projects/desktoppr

és egy új Terminal ablakot kapok ott. Ez nagyon hasznos, ha a !$ előzményhelyettesítő változóval kombináljuk (az előző parancs utolsó argumentuma):

> mkdir Projects/great_new_tool> new !$

És egy váratlan, de hasznos mellékhatás, hogy a new függvény egy ssh munkamenetet is meg tud nyitni egy új ablakban:

> new ssh://[email protected]

Remélem, ezt is hasznosnak találod!

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.