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?
Hay un par de formas en las que puedes hacer esto:
$1
en el campo de mensaje .osascript -e 'tell app "System Events" to display dialog "$1"'
. Tendrá que seleccionar como argumento en el menú desplegable de entrada de paso .$1
con cualquiera de esos métodos.echo something
y definitivamente funciona. ¿Quizás su Script no está devolviendo algo?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.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.
output
Esto se verá así:
NB: también probé el $1
enfoque, 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í:
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>&1
en la parte superior de su script bash.
on run {input, parameters}
display dialog input
end run
display dialog
es parte de las adiciones estándar en AppleScript y no hay absolutamente ninguna necesidad de usarlo tell application "System Events" to
en este caso de uso.
roberto