Configuração da variável Bash com os oscript sempre incorretos.

0

Estou tentando definir uma variável com base na entrada do usuário. Eu sei que o que eu configurei para solicitar ao usuário responderá com "botão retornado: sim" ou "botão retornado: não".

Eu gostaria que a variável fosse definida como "True" se o botão retornasse sim. e "False" se o botão retornar não.

Isso é o que eu tenho até agora:

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"

O que estou fazendo de errado? A variável $ reboot é sempre definida como false, independentemente da entrada do usuário. Este é um script bash, destinado a ser executado em um sistema macOS.

    
por chippewa 01.06.2017 / 17:40

1 resposta

1

Adicionando esta linha ao final de uma cópia do seu script:

echo "r: '$response'; v: '$var'; b: '$reboot'"

fornece esta saída:

r: 'button returned:yes'; v: 'button returned:yes '; b: 'False'

Parece que osascript está anexando um espaço à saída e, como "string" não é igual a "string " , seu teste não funciona como esperado.

    
por 01.06.2017 / 17:47