Mostra risultati del comando Automator-Terminal


9

TL; DR Se creo un .app tramite Automator, come posso mostrare i risultati di uno script shell in una finestra di dialogo o finestra terminale?

Sto usando Automator per eseguire uno script di shell

adb install /Directory/$1.apk

e se lo eseguo tramite Automator, posso vedere i risultati (l'installazione è riuscita o non riesco a trovare filname.apk o qualsiasi altro terminale mi dica). Se salvo come app e faccio doppio clic per eseguirlo, non riesco a vedere questi risultati.

Cosa posso fare per mostrare una finestra di dialogo o una finestra terminale che mostrerebbe i risultati dello script che eseguo?


Ho usato questa domanda per creare questo: github.com/robertocaldas/AdbInstallService
Roberto

Risposte:


2

Ci sono un paio di modi per farlo:

  • Aggiunta di un'azione Richiedi conferma dopo l' esecuzione di uno script shell e utilizzo $1nel campo del messaggio .
  • Aggiunta di un altro script Shell ed esecuzione osascript -e 'tell app "System Events" to display dialog "$1"'. Dovrai selezionare come argomento il menu a discesa dell'input pass .

8
Viene visualizzato solo $1con uno di questi metodi.
Reed,

@Jakar L'ho provato facendo la prima azione Run Shell Scriptecho something e funziona sicuramente. Forse il tuo script non sta restituendo qualcosa?
Thecafremo,

Va bene. Sto pensando che potrebbe avere qualcosa a che fare con adb(parte dell'SDK per sviluppatori Android), perché c'è un output nel Terminale dopo aver eseguito quel comando, ma non tramite lo script automator.
Reed,

Leggera modifica per gestire l'interpolazione di stringhe osascript -e 'dire all'app "Eventi di sistema" per visualizzare la finestra di dialogo "'" $ 1 "'"'
bingles,

20

Se hai solo poche righe di output , ti consigliamo di assegnarlo a una variabile e quindi visualizzare una finestra di dialogo di conferma che mostra l'output.

  1. aggiungi azione "Imposta valore della variabile"
  2. inserire una nuova variabile, ad es output
  3. aggiungi Azione "Richiedi conferma"
  4. nel campo del messaggio, inserisci il nome della variabile dichiarato sopra. Durante la digitazione del nome della variabile, Automator suggerirà di completare il nome della variabile. Accetta premendo il tasto Invio. Ciò impedisce ad Automator di interpretare il nome della variabile come un semplice messaggio di testo.

Questo sarà simile al seguente: Automatore con output di testo

NB: ho anche provato l' $1approccio, ma non ci sono riuscito.

Se hai molte righe di output , dovresti indirizzare tutto l'output in un nuovo documento TextEdit. Per fare ciò, basta aggiungere l'azione "Nuovo documento TextEdit" dopo l'azione dello script.

Potrebbe apparire così: Nuovo testo Modifica azione documento

Suggerimento: i messaggi diagnostici vengono spesso emessi per errore standard. Per raccogliere anche il testo, invia l'errore standard, aggiungi exec 2>&1nella parte superiore dello script bash.


1
wow esattamente quello di cui avevo bisogno!
code4j

1
questa soluzione ha funzionato per me mentre la versione accettata no
Ilias Karim

questo mi è stato davvero utile e mi ha spiegato perché non sono riuscito a ottenere il valore dell'output. ottimo lavoro
CommentLuv

Questo può essere modificato per aprire un documento Text Mate ?
Greg,

1

È necessario utilizzare "Imposta valore della variabile"

inserisci qui la descrizione dell'immagine


Tentato di votare perché questo è solo un duplicato della risposta di Daniel K, tranne che con meno informazioni ...
adfaklsdjf
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.