
Estoy intentando establecer una variable basada en la entrada del usuario. Sé que lo que he configurado para avisar al usuario responderá con "botón devuelto: sí" o "botón devuelto: no".
Me gustaría que la variable se establezca en "Verdadero" si el botón devuelve sí. y "Falso" si el botón devuelve no.
Esto es lo que tengo hasta ahora:
response="button returned:yes"
var=`/usr/bin/osascript -e 'display dialog "Is a reboot required?" buttons {No,Yes}'`
/bin/test "$response" = "$var" && reboot="True" || reboot="False"
¿Qué estoy haciendo mal? La variable $reboot siempre se establece en falso, independientemente de la entrada del usuario. Este es un script bash, diseñado para ejecutarse en un sistema macOS.
Respuesta1
Agregando esta línea al final de una copia de su script:
echo "r: '$response'; v: '$var'; b: '$reboot'"
da esta salida:
r: 'button returned:yes'; v: 'button returned:yes '; b: 'False'
Parece que osascript
se está agregando un espacio a la salida y, como "string"
no es igual a "string "
, la prueba no actúa como esperaba.