vagnerfonseeca

menu-dialog.sh

Jul 22nd, 2025
625
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.17 KB | None | 0 0
  1. #!/bin/bash
  2. #
  3. # Script menu.sh
  4. # Usado para exemplificar o uso de DIALOG nas aulas de Shell Script
  5. #
  6. # Criado por: Vagner Fonseca
  7. # Versao: 0.1
  8. #
  9. #
  10. #
  11. # Testa se esta sendo executado no Modo Grafico ou Modo Texto
  12. #
  13. if [ -z $DISPLAY ]; then  
  14.     export DIALOG=$(which dialog)
  15. else
  16.     export DIALOG=$(which Xdialog)
  17. fi
  18. #
  19. # Cria o aquivo onde sera armazenada a resposta da pergunta dentro do dialog e
  20. # se o script for cancelado ele apaga o arquivo
  21. #
  22. tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/test$$
  23. trap "rm -f $tempfile" 0 1 2 5 15
  24. #
  25. # Funcao que apresenta o menu para os usuarios escolherem as opcoes
  26. #
  27. function menu {
  28. $DIALOG --backtitle "Vagner Software LTDA" --title "MENU DE OPCOES" \
  29.         --menu "Selecione abaixo o que deseja fazer:" 18 50 10 \
  30.         "L"  "Listar o /" \
  31.         "D"  "Exibir a data atual" \
  32.         "U"  "Ver o usuarios logados" \
  33.         "K"  "Ver a versao do Kernel" \
  34.         "T"  "Para ver o tempo de uso" \
  35.         "S"  "Para sair do Script" 2> $tempfile
  36. }
  37. #
  38. # Funcao que executa o que foi escolhido e apresenta o resultado do que foi feito
  39. #
  40. executa () {
  41. RESP=$(cat $tempfile)
  42. case $RESP in
  43.     [L]) VAR=$(ls -l /); $DIALOG  --backtitle "Vagner Software LTDA" --title "Lista do /" --msgbox "$VAR" 30 80 ;;
  44.     [D]) VAR=$(date); $DIALOG  --backtitle "Vagner Software LTDA" --title "Data" --msgbox "$VAR" 8 50 ;;
  45.     [U]) VAR=$(w); $DIALOG  --backtitle "Vagner Software LTDA" --title "Usuarios Logados" --msgbox "$VAR" 20 80 ;;
  46.     [K]) VAR=$(uname -r); $DIALOG  --backtitle "Vagner Software LTDA" --title "Versao do Kernel" --msgbox "$VAR" 8 40 ;;
  47.     [T]) VAR=$(uptime); $DIALOG  --backtitle "Vagner Software LTDA" --title "Tempo de Ligado" --msgbox "$VAR" 8 70 ;;
  48.     [S]) exit ;;
  49.     *) $DIALOG  --backtitle "Vagner Software LTDA" --title "Mensagem de erro" --msgbox "Para sair escolha a opcao S do menu" 8 50;;
  50. esac
  51. }
  52. #
  53. # Evita que o script seja cancelado por algum sinal enviado por comando ou teclado
  54. #
  55. ##trap 'echo "Operacao Invalida"' 0 1 2 3 5 15 18 20 24
  56. #
  57. # Chama as funcoes dentro de um loop, portanto permanecera na tela ate que seja
  58. # escolhida a opcao sair
  59. #
  60. while true ; do
  61.     clear
  62.     menu
  63.     executa
  64. done
  65. #
  66. # Fim do script
  67.  
Advertisement
Add Comment
Please, Sign In to add comment