Jak napisać skrypt otwierający okno iTerm2 i uruchamiający polecenie?


6

Co ja robię

Korzystam z iTerm2 Build 3.0.15 i piszę skrypt, który otwiera nowe okno i wyświetla na ekranie „witaj świecie”. Naprawdę, jestem zainteresowany uruchomieniem dowolnego polecenia, ale echo "hello world"jako punktem wyjścia.

Co próbowałem

Przeczytałem o dokumentacji iTerm2 dotyczącej skryptów. Chciałem dowiedzieć się więcej, więc przeciągnąłem iTerm2ikonę na Script Editorikonę, aby wyświetlić dostępny słownik i znalazłem następujące polecenie:

wprowadź opis zdjęcia tutaj

Z lektury słownika i dokumentacji napisałem następujący skrypt:

tell application "iTerm"
  create window with default profile command "echo hello world"
end tell

Kiedy uruchamiam skrypt z terminala, otworzyło się nowe okno i na ekranie pojawiło się „witaj świecie”; dostałem jednak następujący błąd zepsutej rury: wprowadź opis zdjęcia tutaj

Kiedy wybieram Okokno zamknięte i zostaje mi następujący komunikat:

$ osascript iterm.applescript
window id 6415

Pytania

  • Co oznaczają te zepsute rury i błędy id 6415 okna?
  • Jak napisać skrypt otwierający okno iTerm2 i uruchamiający polecenie?

opóźnienie 1 napisz tekst „wyczyść” jest fajny, jeśli chcesz mieć czysty początek
jeremyjjbrown

Odpowiedzi:


7

Spróbuj tego:

tell application "iTerm2"
    set newWindow to (create window with default profile)
    tell current session of newWindow
        write text "echo it works!"
    end tell
end tell

write Polecenia , gdy nie jest używany without newline, wykonuje write text polecenia ze względu na domyślnie dodaje nowej linii po „tekst do wysłania”. W ten sposób okno pozostaje otwarte po zakończeniu polecenia , gotowe do dodatkowego użycia.


Ze słownika iTerm AppleScript:

napisz v : Wyślij tekst tak, jakby został wpisany.

      specyfikator zapisu : sesja do wysłania do
            [ zawartość pliku pliku]: nazwa pliku do wysłania zawartości
            [ tekstowy tekst]: tekst do wysłania
            [ logiczny znak nowej linii ]: jeśli nowy wiersz powinien zostać dodany na końcu tekstu (domyślnie: tak)


0

wymienić command "echo hello world"z

command "bash -c \"echo hello world && read\""

Użycie polecenia readbash powoduje, że użytkownik kończy linię (tj. Naciskając klawisz Enter) przed wyjściem. Naciśnięcie klawisza Enter w ciągu 3 sekund nadal spowoduje wyświetlenie ostrzeżenia, ponieważ jest to funkcja iTerm, którą można wyłączyć, zaznaczając pole ostrzeżenia i precyzyjniej kontrolować w Preferencjach → Zaawansowane → Ostrzegaj o sesjach krótkotrwałych.


@ użytkownik Pewnie, edytowano
grg

2
Czy to możliwe, aby terminal nie był zamknięty? Celem jest możliwość powiedzenia „Otwórz iTerm uruchom to polecenie i nie
wychodź
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.