Pokaż wyniki polecenia Automator-Terminal

9

TL; DR Jeśli utworzę .app za pomocą Automatora, jak mogę wyświetlić wyniki skryptu powłoki w oknie dialogowym lub oknie terminala?

Używam Automatora do uruchomienia skryptu powłoki

adb install /Directory/$1.apk

a jeśli uruchomię go za pomocą Automatora, zobaczę wyniki (instalacja zakończyła się powodzeniem lub nie mogę znaleźć pliku nazwa_pliku.apk lub cokolwiek innego, co powiedziałby mi terminal). Jeśli zapiszę jako aplikację i kliknę dwukrotnie, aby uruchomić, nie zobaczę tych wyników.

Co mogę zrobić, aby wyświetlić okno dialogowe lub okno terminala, które wyświetlałoby wyniki uruchomionego skryptu?

Trzcina
źródło
Użyłem tego pytania, aby to utworzyć: github.com/robertocaldas/AdbInstallService
Roberto

Odpowiedzi:

2

Można to zrobić na kilka sposobów:

  • Dodanie akcji Zapytaj o potwierdzenie po uruchomieniu Skryptu powłoki i użycie jej $1w polu komunikatu .
  • Dodawanie kolejnego skryptu powłoki Shell i wykonywanie osascript -e 'tell app "System Events" to display dialog "$1"'. Będziesz musiał wybrać jako argument w rozwijanym menu wprowadzania danych wejściowych .
Thecafremo
źródło
8
Po prostu wyświetla się za $1pomocą jednej z tych metod.
Reed
@Jakar Przetestowałem to, wykonując pierwszą akcję Run Shell Scriptecho something i na pewno działa. Być może twój skrypt nie zwraca czegoś?
Thecafremo,
W porządku. Myślę, że może to mieć coś wspólnego adb(część pakietu SDK dla programistów Androida), ponieważ po uruchomieniu tego polecenia pojawia się w nim Terminal, ale nie za pośrednictwem skryptu automatyzującego.
Reed,
Nieznaczne modyfikacje do obsługi osascript interpolacji ciągów -e informują aplikację „Zdarzenia systemowe”, aby wyświetlić okno dialogowe „$ 1” ”
bingles
21

Jeśli masz tylko kilka wierszy wyniku , powinieneś przypisać go do zmiennej, a następnie wyświetlić okno dialogowe potwierdzenia pokazujące wynik.

  1. dodaj działanie „Ustaw wartość zmiennej”
  2. wprowadź nową zmienną, np output
  3. dodaj działanie „Poproś o potwierdzenie”
  4. w polu komunikatu wprowadź zadeklarowaną powyżej nazwę zmiennej. Podczas wpisywania nazwy zmiennej Automator zasugeruje jej uzupełnienie. Zaakceptuj, naciskając klawisz Enter. Zapobiega to interpretowaniu przez Automator nazwy zmiennej jako zwykłego komunikatu tekstowego.

Będzie to wyglądać tak: Automator z wyjściem tekstowym

NB: Próbowałem również tego $1podejścia, ale nie udało się.

Jeśli masz dużo wierszy wyników , powinieneś przekierować wszystkie dane wyjściowe do nowego dokumentu TextEdit. Aby to zrobić, wystarczy dodać akcję „Nowy dokument TextEdit” po akcji skryptu.

Może to wyglądać tak: Nowa czynność edycji dokumentu tekstowego

Wskazówka: komunikaty diagnostyczne są często wyprowadzane na błąd standardowy. Aby również zbierać tekst wysyłany do standardowego błędu, dodaj exec 2>&1na górze skryptu bash.

Daniel K.
źródło
1
wow dokładnie to, czego potrzebowałem!
code4j
1
to rozwiązanie działało dla mnie, podczas gdy zaakceptowana wersja nie
Ilias Karim
było to dla mnie bardzo przydatne i wyjaśniło, dlaczego nie mogłem uzyskać wartości wyjściowej. świetna robota
CommentLuv
Czy można to zmodyfikować, aby otworzyć dokument Text Mate ?
Greg
1

Musisz użyć „Ustaw wartość zmiennej”

wprowadź opis zdjęcia tutaj

ChanOnly123
źródło
Skusiłem się na głosowanie, ponieważ jest to tylko duplikat odpowiedzi Daniela K, z wyjątkiem mniejszej ilości informacji ...
adfaklsdjf