Mostrar resultados del comando Automator-Terminal

TL; DR Si creo un .app a través de Automator, ¿cómo puedo mostrar los resultados de un script de shell en un cuadro de diálogo o ventana de terminal?

Estoy usando Automator para ejecutar un script de shell

adb install /Directory/$1.apk

y si lo ejecuto a través de Automator, puedo ver los resultados (instalación exitosa o no puedo encontrar filname.apk o cualquier otra cosa que me diga la terminal). Si guardo como aplicación y hago doble clic para ejecutar, entonces no puedo ver estos resultados.

¿Qué puedo hacer para mostrar un cuadro de diálogo o una ventana de terminal que muestre los resultados del script que ejecuto?

Usé esta pregunta para crear esto: github.com/robertocaldas/AdbInstallService

Respuestas (4)

Hay un par de formas en las que puedes hacer esto:

  • Agregar una acción Solicitar confirmación después de Ejecutar script de Shell y usarla $1en el campo de mensaje .
  • Agregar otro Run Shell Script y ejecutar osascript -e 'tell app "System Events" to display dialog "$1"'. Tendrá que seleccionar como argumento en el menú desplegable de entrada de paso .
Simplemente se muestra $1con cualquiera de esos métodos.
@Jakar Lo probé con la primera acción Run Shell Scriptecho something y definitivamente funciona. ¿Quizás su Script no está devolviendo algo?
Bueno. Estoy pensando que puede tener algo que ver con adb(parte del SDK del desarrollador de Android), porque hay una salida en la Terminal después de ejecutar ese comando, pero no a través de la secuencia de comandos del automatizador.
Ligera modificación para manejar la interpolación de cadenas osascript -e 'dile a la aplicación "Eventos del sistema" que muestre el cuadro de diálogo "'"$1"'"'

Si solo tiene unas pocas líneas de salida , querrá asignarlas a una variable y luego mostrar un cuadro de diálogo de confirmación que muestre la salida.

  1. agregar acción "Establecer valor de variable"
  2. introduzca una nueva variable, por ejemplooutput
  3. agregar la acción "Solicitar confirmación"
  4. en el campo de mensaje, ingrese el nombre de la variable declarado arriba. Mientras escribe el nombre de la variable, Automator le sugerirá que complete el nombre de la variable. Acepte presionando la tecla Enter. Esto evita que Automator interprete el nombre de la variable como un mensaje de texto sin formato.

Esto se verá así:Automator con salida de texto

NB: también probé el $1enfoque, pero no tuve éxito.

Si tiene muchas líneas de salida , debe dirigir todas las salidas a un nuevo documento de TextEdit. Para hacerlo, simplemente agregue la acción "Nuevo documento de edición de texto" después de su acción de secuencia de comandos.

Esto puede verse así:Nueva acción de documento Editar texto

Sugerencia: los mensajes de diagnóstico suelen generar un error estándar. Para recopilar también texto enviado a error estándar, agregue exec 2>&1en la parte superior de su script bash.

wow exactamente lo que necesitaba!
esta solución funcionó para mí, mientras que la versión aceptada no
esto fue realmente útil para mí y explicó por qué no pude obtener el valor de la salida. gran trabajo
¿Se puede modificar para abrir un documento de Text Mate ?

Necesita usar "Establecer valor de variable"

ingrese la descripción de la imagen aquí

Tentado a votar negativamente porque esto es solo un duplicado de la respuesta de Daniel K, excepto que con menos información ...
  1. Agregar acción "Ejecutar AppleScript"
  2. Pegue este script:
on run {input, parameters}
    display dialog input
end run
display dialoges parte de las adiciones estándar en AppleScript y no hay absolutamente ninguna necesidad de usarlo tell application "System Events" toen este caso de uso.
@ user3439894 Gracias, eso es más breve. Editado.