Czy istnieje sposób na otwarcie nowego terminala z wiersza poleceń i uruchomienie polecenia na tym nowym terminalu (na komputerze Mac)?
np. coś takiego:
Terminal -e ls
gdzie ls
jest uruchamiany w nowym terminalu.
macos
command-line
terminal
zlog
źródło
źródło
Odpowiedzi:
Otwiera to nowy terminal i wykonuje w nim polecenie „echo hello”.
źródło
osascript -e 'tell app "Terminal" to do script "echo hello"'
Możesz to zrobić okrężną drogą:
Skrypty powłoki z rozszerzeniem
.command
i które są wykonywalne, można kliknąć dwukrotnie, aby uruchomić w nowym oknie terminala. Komendaopen
, jak zapewne wiesz, jest równoważne dwukrotnemu kliknięciu obiektu Finder, więc ta procedura kończy wykonywanie poleceń w skrypcie w nowym oknie terminala.Lekko skręcone, ale wydaje się działać. Jestem tam pewien musi być bardziej bezpośrednią drogą do tego (co właściwie próbujesz zrobić?), ale ucieka mi teraz.
źródło
Potrzebujesz ruby 1.9 lub musisz dodać linię
require 'rubygems'
przed innymi wymaga i nie zapomnij zainstalowaćgem rb-appscript
.Nazwałem ten skrypt
dt
(zakładka dup), więc mogę po prostu uruchomićdt
aby otworzyć kartę w tym samym folderze lubdt ls
także tam biegaćls
dowództwo.źródło
Zrobiłbym to za pomocą AppleScript. Możesz go usprawnić za pomocą polecenia osascript. Twój skrypt będzie wyglądał następująco:
Jeśli masz zamiar uzyskać do niego dostęp tylko w terminalu, możesz pominąć wszystkie instrukcje z wyjątkiem tell. Jeśli chcesz nowe okno zamiast nowej karty, zastąp klawisz t klawiszem n.
Nie jestem wystarczająco doświadczony w AppleScripter, aby wiedzieć, jak uzyskać argumenty wiersza poleceń, a następnie wpisać je w nowym oknie, ale jestem pewien, że jest to możliwe i nie jest zbyt trudne.
Również ja myśleć to działa i nie jestem w stanie przetestować teraz, ale jestem pewien, że możesz uruchomić skrypt powłoki z pewnym wariantem na #! / usr / bin / osascript -e, a następnie zapisać go jako plik wykonywalny, jak chcesz. Co, przynajmniej w mojej głowie, umożliwiłoby ci wpisanie czegoś takiego jak $ runinnewterm ls / Applications
źródło
To działa, przynajmniej pod Mountain Lion. Inicjuje powłokę interaktywną za każdym razem, chociaż można ją zastąpić faktem, wywołując ją jako „exec macterm twoje polecenie ". Zapisz to w bin / macterm w twoim katalogu domowym i chmod a + x bin / macterm:
źródło