E se o usuário apertar a tecla ESC no Dialog
Em qualquer tela do Dialog, apertar a tecla Esc gera o código de retorno 255, e abandona a caixa. Então além de tratar do botão OK (retorno zero) e do CANCELAR (retorno 1), também é preciso cuidar da tecla Esc.
Dependendo do tipo de sua aplicação, a tecla Esc pode gerar o mesmo procedimento que apertar o botão CANCELAR geraria. Ou ainda, você pode ter dois procedimentos diferentes, um para cada evento. Tudo depende do tipo de navegação que seu programa utiliza, algumas sugestões:
- Navegação amarrada a um Menu Principal
-
- Se apertar CANCELAR no Menu Principal, sai do programa
- Se apertar CANCELAR numa tela secundária, volta ao Menu Principal
- Se apertar ESC em qualquer tela, sai do programa
- Navegação tipo Ida e Volta
-
- Se apertar CANCELAR volta à tela anterior
- Se apertar ESC sai do programa
Veja exemplos completos desses tipos de navegação e do tratamento dos eventos no tópico seguinte.
Caso queira mapear o Esc para o mesmo funcionamento do CANCELAR, você pode fazer um teste mais genérico como, “se não for o OK”:
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
Claro, se estiver usando botão de HELP, ele também será mapeado para o CANCELAR, então cuidado.