Mostrar resultados do comando Automator-Terminal

9

TL; DR Se eu criar um .app via Automator, como posso mostrar os resultados de um script de shell em uma janela de diálogo ou terminal?

Estou usando o Automator para executar um script de shell

adb install /Directory/$1.apk

e se eu executá-lo via Automator, posso ver os resultados (a instalação foi bem-sucedida ou não é possível encontrar o nome do arquivo.apk ou qualquer outro terminal que me diga). Se eu salvar como aplicativo e clicar duas vezes para executar, não vejo esses resultados.

O que posso fazer para mostrar uma caixa de diálogo ou janela de terminal que exibirá os resultados do script que eu executo?

Reed
fonte
Eu usei esta pergunta para criar esta: github.com/robertocaldas/AdbInstallService
Roberto

Respostas:

2

Existem algumas maneiras de fazer isso:

  • Adicionando uma ação Solicitar Confirmação após a Execução de Script do Shell e usando $1no campo de mensagem .
  • Adicionando outro Executar Script de Shell e executando osascript -e 'tell app "System Events" to display dialog "$1"'. Você terá que selecionar como argumento na lista suspensa de entrada de passe .
Thecafremo
fonte
8
Apenas é exibido $1com um desses métodos.
Reed
@Jakar Eu testei com a primeira ação Executar Shell Scriptecho something e definitivamente funciona. Talvez você esteja Script não está retornando algo?
Thecafremo
OK. Eu estou pensando que pode ter algo a ver com adb(parte do desenvolvedor Android SDK), porque há saída no Terminal depois que eu executo esse comando, mas não através do script do automator.
Reed
Ligeira modificação para manipular a interpolação de string osascript -e 'tell app "System Events" para exibir a caixa de diálogo "'" $ 1 "'"' '
bingles
20

Se você tiver apenas algumas linhas de saída , deseje atribuí-lo a uma variável e exibir uma caixa de diálogo de confirmação mostrando a saída.

  1. adicionar ação "Definir valor da variável"
  2. insira uma nova variável, por exemplo output
  3. adicione a ação "Solicitar confirmação"
  4. no campo da mensagem, insira o nome da variável declarado acima. Ao digitar o nome da variável, o Automator sugere que você complete o nome da variável. Aceite pressionando a tecla Enter. Isso impede que o Automator interprete o nome da variável como uma mensagem de texto sem formatação.

Isso ficará assim: Automator com saída de texto

NB: Eu também tentei a $1abordagem, mas não obtive sucesso.

Se você tiver muitas linhas de saída , direcione toda a saída para um novo documento TextEdit. Para fazer isso, basta adicionar a ação "Novo documento do TextEdit" após a ação do script.

Isso pode ser assim: Nova ação do documento de edição de texto

Dica: as mensagens de diagnóstico geralmente são enviadas para erro padrão. Para também coletar texto enviado para erro padrão, adicione exec 2>&1na parte superior do seu script bash.

Daniel K.
fonte
11
uau exatamente o que eu precisava!
code4j
11
esta solução funcionou para mim, enquanto a versão aceita não
Ilias Karim
isso foi realmente útil para mim e explicou por que não consegui obter o valor da saída. bom trabalho
CommentLuv 27/02
Isso pode ser modificado para abrir um documento Text Mate ?
Greg
1

Precisa usar "Definir valor da variável"

insira a descrição da imagem aqui

ChanOnly123
fonte
Tentou
diminuir o voto