Cómo usar el botón Cancelar en Osascript para detener la ejecución del script

2

Aquí está mi guión básico:

#!/bin/bash

osascript  -e 'tell application id "com.apple.systemevents"'
-e 'display dialog "Do you want to continue?" & return & return &
 " Please wait..." buttons {"Cancel", "Okay"} default button
2 cancel button "Cancel"' -e 'end tell' -e 'if button returned is "Cancel" then'
-e '<blah blah kill this script>' -e 'end if'

-- other bash stuff here

Necesito que el script se detenga si el usuario hace clic en el botón "Cancelar". Tal como está ahora, el script espera hasta que el usuario haga clic en cualquiera de los botones y luego ejecute el código de bash. ¿Cómo puedo matar el script?

Esto para poder ejecutarse en Mac OS 10.6 a 10.10, sin complementos de terceros.

    
pregunta rogerFernand 06.04.2015 - 03:52

1 respuesta

2

¿Qué tal esto?

  • Funciona en mi Macbook 10.6.
  • Es más limpio que tener que escapar de las citas, etc ...
  • osascript devuelve un estado como los programas normales de Unix.
  • Bash script se anula en un estado 1 de osascript.
  • No hay mensajes innecesarios de osascript - >dev/null 2>&1

No tengo nada más para probarlo. Es posible que deba ajustar otras versiones de OSX.

#!/bin/bash

osascript >/dev/null 2>&1 <<-EOF
tell application id "com.apple.systemevents"
   set myMsg to "Do you want to continue?" & return & return & " Please wait..."
   set theResp to display dialog myMsg buttons {"Cancel", "Okay"} default button 2 
end tell

# Following is not really necessary. Cancel returns 1 and OK 0 ...
if button returned of theResp is "Cancel" then
   return 1
end if
EOF

# Check status of osascript
if [ "$?" != "0" ] ; then
   echo "User aborted. Exiting..."
   exit 1
fi

#-- other bash stuff here
echo "All good, moving on...."

HTH

    
respondido por el Vic 07.04.2015 - 22:13

Lea otras preguntas en las etiquetas