GUI simples para vários comandos bash

3

Estou tentando criar um script bash muito simples com uma GUI. Eu quero que ele abra uma caixa de diálogo onde o usuário pode usar as teclas de seta para selecionar uma função, ela será concluída e, em seguida, retornará ao menu.

Comecei a usar o diálogo, pois é fácil listar as opções, mas o script sempre termina quando uma ação é concluída.

Aqui está o que eu tenho até agora:

dialog --menu "Task to perform" 10 30 3 1 This 2 That Office 3 Exit

Alguém pode me indicar a maneira de retornar ao menu? (ou outro jeito!)

    
por user935227 15.03.2017 / 15:04

1 resposta

2

Você não precisa de 3 Exit como uma opção, pois dialog já gera um botão "Cancelar". Você poderia fazer um loop para exibir a caixa de diálogo até que o usuário pressionasse o botão cancelar:

(Nota: parte da minha amostra de código é retirada de esta resposta )

#!/bin/bash

#we start the loop....
while [[ "$dialog_exit" -ne 1 ]]; do
    #we force the redirection of the output to the file descriptor n°1 with the --fd-output 1 option
    dialog_result=$(dialog --clear --menu "Task to perform" 10 30 3 1 "This task" 2 "That task" 3 "Yet another task" --fd-output 1);

    #we store the exit code. If the user pressed cancel, exit code is 1. Else, it is 0.
    dialog_exit=$?;
    case "$dialog_result" in
        1) echo "task 1";;
        2) echo "task 2";;
        3) echo "task 3";;
        "") echo "action when cancel";;
    esac
done
    
por Aserre 15.03.2017 / 15:34