18 votes

Afficher les résultats de la commande Automator-Terminal

TL;DR Si je crée une .app via Automator, comment puis-je afficher les résultats d'un shell script dans une fenêtre de dialogue ou de terminal ?

J'utilise Automator pour exécuter un shell script.

adb install /Directory/$1.apk

et si je l'exécute via Automator, je peux voir les résultats (installation réussie ou impossible de trouver filname.apk ou tout ce que le terminal me dirait). Si j'enregistre comme application et que je double-clique pour l'exécuter, je ne vois pas ces résultats.

Que puis-je faire pour afficher une fenêtre de dialogue ou de terminal qui afficherait les résultats du script que j'exécute ?

0 votes

J'ai utilisé cette question pour créer ceci : github.com/robertocaldas/AdbInstallService

31voto

Daniel K. Points 466

Si vous avez seulement quelques lignes de sortie vous voudriez l'affecter à une variable et ensuite afficher une boîte de dialogue de confirmation montrant la sortie.

  1. ajouter l'action "Définir la valeur de la variable".
  2. entrer une nouvelle variable, par exemple output
  3. ajouter l'action "Demander une confirmation".
  4. dans le champ message, entrez le nom de la variable déclarée ci-dessus. Pendant la saisie du nom de la variable, Automator vous proposera de compléter le nom de la variable. Acceptez en appuyant sur la touche Entrée. Cela empêche Automator d'interpréter le nom de la variable comme un message en texte clair.

Cela ressemblera à ceci : Automator with text output

NB : J'ai également essayé le $1 mais n'a pas réussi.

Si vous avez beaucoup de lignes de sortie vous devez diriger tous les résultats vers un nouveau document TextEdit. Pour ce faire, il suffit d'ajouter l'action "Nouveau document TextEdit" après votre action script.

Cela peut ressembler à ceci : New Text Edit document action

Un conseil : Les messages de diagnostic sont souvent transmis à l'erreur standard. Pour recueillir également le texte envoyé à l'erreur standard, ajoutez exec 2>&1 en haut de votre script bash.

1 votes

Wow exactement ce dont j'avais besoin !

1 votes

Cette solution a fonctionné pour moi alors que la version acceptée ne l'a pas fait

0 votes

Cela m'a été très utile et m'a expliqué pourquoi je ne parvenais pas à obtenir la valeur de la sortie. excellent travail.

2voto

Thecafremo Points 13255

Il y a plusieurs façons de procéder :

  • Ajout d'un Demandez une confirmation après l'action Exécuter le Shell script et en utilisant $1 dans le message champ.
  • Ajouter un autre Exécuter le Shell script et en exécutant osascript -e 'tell app "System Events" to display dialog "$1"' . Vous devrez sélectionner comme argument sur le passer l'entrée en bas.

14 votes

Il affiche juste $1 avec l'une ou l'autre de ces méthodes.

0 votes

@Jakar Je l'ai testé en ayant la première Exécuter le Shell script action faire echo something et ça marche vraiment. Peut-être que votre script ne renvoie pas quelque chose ?

0 votes

Ok. Je pense que ça a peut-être quelque chose à voir avec adb (qui fait partie de Android developer SDK), car il y a une sortie dans le Terminal après avoir exécuté cette commande, mais pas via l'automate script.

1voto

Vadim Slutsky Points 51

Il faut utiliser "Définir la valeur de la variable".

enter image description here

0 votes

Tenté de décoter parce que c'est juste un duplicata de la réponse de Daniel K, mais avec moins d'informations...

0voto

cakraww Points 101
  1. Ajoutez l'action "Exécuter AppleScript".
  2. Collez ce script :

    on run {input, parameters} display dialog input end run

1 votes

display dialog fait partie de Ajouts standard sur AppleScript et il n'y a absolument aucun besoin d'utiliser tell application "System Events" to dans ce cas d'utilisation.

0 votes

@user3439894 Merci, c'est terser. Modifié.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X