Afficher les résultats de la commande Automator-Terminal

9

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

J'utilise Automator pour exécuter un script shell

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 autre terminal me le dirait). Si j'enregistre en tant qu'application et double-clique pour l'exécuter, je ne vois pas ces résultats.

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

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

Réponses:

2

Vous pouvez procéder de plusieurs manières:

  • Ajout d'une action Demander une confirmation après l' exécution du script Shell et utilisation $1dans le champ de message .
  • Ajout d'un autre Run Shell Script et exécution osascript -e 'tell app "System Events" to display dialog "$1"'. Vous devrez sélectionner comme argument dans la liste déroulante d' entrée de passe .
Thecafremo
la source
8
Il s'affiche simplement $1avec l'une de ces méthodes.
Reed
@Jakar Je l'ai testé en faisant la première action Exécuter le script Shellecho something et cela fonctionne définitivement. Peut-être que votre script ne retourne pas quelque chose?
Thecafremo
D'accord. Je pense que cela peut avoir quelque chose à voir avec adb(une partie du SDK du développeur Android), car il y a une sortie dans Terminal après avoir exécuté cette commande, mais pas via le script de l'automate.
Reed
Légère modification pour gérer l'interpolation de chaîne osascript -e 'dites à l'application "System Events" d'afficher la boîte de dialogue "'" $ 1 "'"'
bingles
20

Si vous n'avez que quelques lignes de sortie , vous souhaitez l'assigner à une variable, puis afficher une boîte de dialogue de confirmation montrant la sortie.

  1. ajouter l'action "Définir la valeur de la variable"
  2. entrez une nouvelle variable, par exemple output
  3. ajouter l'action "Demander une confirmation"
  4. dans le champ du message, entrez le nom de variable déclaré ci-dessus. Lors de la saisie du nom de la variable, Automator 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 brut.

Cela ressemblera à ceci: Automator avec sortie texte

NB: J'ai également essayé l' $1approche, mais sans succès.

Si vous avez beaucoup de lignes de sortie , vous devez diriger toutes les sorties dans un nouveau document TextEdit. Pour ce faire, ajoutez simplement l'action "Nouveau document TextEdit" après votre action de script.

Cela peut ressembler à ceci: Nouvelle action de modification de texte du document

Astuce: les messages de diagnostic sont souvent émis en erreur standard. Pour collecter également le texte envoyé à l'erreur standard, ajoutez exec 2>&1en haut de votre script bash.

Daniel K.
la source
1
wow exactement ce dont j'avais besoin!
code4j
1
cette solution a fonctionné pour moi alors que la version acceptée n'a pas fonctionné
Ilias Karim
cela m'a été très utile et m'a expliqué pourquoi je ne pouvais pas obtenir la valeur de la sortie. excellent travail
CommentLuv
Peut-il être modifié pour ouvrir un document Text Mate ?
Greg
1

Besoin d'utiliser "Définir la valeur de la variable"

entrez la description de l'image ici

ChanOnly123
la source
Tenté de voter parce que ce n'est qu'un doublon de la réponse de Daniel K, sauf avec moins d'informations ...
adfaklsdjf