Ergebnisse des Automator-Terminal-Befehls anzeigen

9

TL; DR Wie kann ich die Ergebnisse eines Shell-Skripts in einem Dialog- oder Terminalfenster anzeigen, wenn ich eine App über Automator erstelle?

Ich verwende Automator, um ein Shell-Skript auszuführen

adb install /Directory/$1.apk

und wenn ich es über Automator ausführe, kann ich die Ergebnisse sehen (Installation erfolgreich oder kann filname.apk nicht finden oder was auch immer das Terminal mir sonst sagen würde). Wenn ich als App speichere und zum Ausführen doppelklicke, werden diese Ergebnisse nicht angezeigt.

Was kann ich tun, um ein Dialogfeld oder ein Terminalfenster anzuzeigen, in dem die Ergebnisse des von mir ausgeführten Skripts angezeigt werden?

Schilf
quelle
Ich habe diese Frage verwendet, um dies zu erstellen: github.com/robertocaldas/AdbInstallService
Roberto

Antworten:

2

Es gibt verschiedene Möglichkeiten, dies zu tun:

  • Hinzufügen einer Aktion " Zur Bestätigung anfordern" nach der Aktion " Shell-Skript ausführen" und Verwenden $1im Nachrichtenfeld .
  • Hinzufügen eines weiteren Run Shell-Skripts und Ausführen osascript -e 'tell app "System Events" to display dialog "$1"'. Sie müssen als Argument in der Dropdown- Liste für die Pass-Eingabe auswählen .
Thecafremo
quelle
8
Es wird nur $1mit einer dieser Methoden angezeigt .
Reed
@Jakar Ich habe es mit der ersten Aktion " Shell-Skript ausführen" getestet echo somethingund es funktioniert definitiv. Vielleicht gibt Ihr Skript etwas nicht zurück?
Thecafremo
Okay. Ich denke, es hat möglicherweise etwas damit zu tun adb(Teil des Android-Entwickler-SDK), da im Terminal eine Ausgabe erfolgt, nachdem ich diesen Befehl ausgeführt habe, jedoch nicht über das Automator-Skript.
Reed
Leichte Änderung zur Behandlung der String-Interpolation osascript -e 'App "Systemereignisse" mitteilen, um den Dialog "'" $ 1 "'"' '
anzuzeigen
20

Wenn Sie nur wenige Ausgabezeilen haben , möchten Sie diese einer Variablen zuweisen und dann einen Bestätigungsdialog mit der Ausgabe anzeigen.

  1. Aktion hinzufügen "Wert der Variablen festlegen"
  2. Geben Sie eine neue Variable ein, z output
  3. Aktion hinzufügen "Bestätigung anfordern"
  4. Geben Sie im Nachrichtenfeld den oben deklarierten Variablennamen ein. Während der Eingabe des Variablennamens schlägt Automator vor, den Variablennamen zu vervollständigen. Akzeptieren Sie durch Drücken der Eingabetaste. Dies verhindert, dass Automator den Variablennamen als reine Textnachricht interpretiert.

Das wird so aussehen: Automator mit Textausgabe

NB: Ich habe den $1Ansatz auch ausprobiert , aber es ist mir nicht gelungen.

Wenn Sie viele Ausgabezeilen haben , sollten Sie die gesamte Ausgabe in ein neues TextEdit-Dokument leiten. Fügen Sie dazu einfach nach Ihrer Skriptaktion die Aktion "Neues TextEdit-Dokument" hinzu.

Das könnte so aussehen: Neue Textaktion Dokument bearbeiten

Hinweis: Diagnosemeldungen werden häufig als Standardfehler ausgegeben. exec 2>&1Fügen Sie oben in Ihrem Bash-Skript hinzu, um auch Text zu erfassen, der an einen Standardfehler gesendet wurde.

Daniel K.
quelle
1
wow genau das was ich brauchte!
Code4j
1
Diese Lösung funktionierte für mich, während die akzeptierte Version nicht funktionierte
Ilias Karim
Dies war sehr nützlich für mich und erklärte, warum ich den Wert der Ausgabe nicht erhalten konnte. tolle Arbeit
CommentLuv
Kann dies geändert werden, um ein Text Mate- Dokument zu öffnen ?
Greg
1

Müssen "Set Value of Variable" verwenden

Geben Sie hier die Bildbeschreibung ein

ChanOnly123
quelle
Ich bin versucht abzustimmen, weil dies nur ein Duplikat von Daniel Ks Antwort ist, außer mit weniger Informationen ...
adfaklsdjf