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 procede a ejecutar el código bash. ¿Cómo puedo matar el guión?
Esto para poder ejecutarse en Mac OS 10.6 a 10.10, sin complementos de terceros.
¿Qué tal esto?
1
de osascript.>dev/null 2>&1
No tengo nada más para probarlo. Es posible que deba ajustarse a 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
rogerfernand
osascript -e
. El script es parte de una aplicación envuelta en Wineskin. El script se ejecuta a través de uno de los elementos del menú Ayuda.rogerfernand
Vic
|| exit 0
, es un operador OR lógico que se usa como una versión abreviada delif ... then
bloque. Si su osascript lo devuelve 0, entonces no ejecuta la segunda parte, si no, entonces tiene que hacer la segunda parte.rogerfernand