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?


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 .

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.


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.