shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Menu em shell


From: phribbr
Subject: Menu em shell
Date: Sun, 19 Jun 2005 00:57:12 -0000
User-agent: eGroups-EW/0.82

Boa noite, Pessoal!!!

Estou treinando um pouco de script e com isso
estava tentando fazer um menu em ksh, do estilo dialog,
soh que nesse script eu tenho que ler uma letra e teclar enter.

Serah que nao ter jeito de eu digitar uma letra e ir diretamente
para a movimentacao do menu sem teclar o enter?

Obrigado!!!

Abaixo vai o script
#!/bin/ksh 
clear

###################
## FUNCAO MENU   ## 
###################
menu() {
print "Menu  - d=desce  s=sobe k=confirma"
print " "
print "+---------------------------+"
print "$pos1|          OPCAO 1          |"
print "$pos2|          OPCAO 2          |"
print "$pos3|          OPCAO 3          |"
print "$pos4|          OPCAO 4          |"
print "$pos5|          OPCAO 5          |"
print "$pos6|          OPCAO 6          |"
print "$pos7|          OPCAO 7          |"
print "\033[0m+---------------------------+"

# nao vai aparecer o valor digitado
print "\033[8m"  

# A PARTE QUE VAI LER A LETRA DIGITADA, E SOH VAI
# MOVIMENTAR DO ENTER

read tecla

# Voltando para a cor da letra normal
print "\033[0m" 


if [[ $tecla = "d" ]] || [[ $tecla = "D" ]]; then
   let linha_atual=$linha_atual+1
elif [[ $tecla = "s" ]] || [[ $tecla = "S" ]]; then
   let linha_atual=$linha_atual-1
elif [[ $tecla = "k" ]] || [[ $tecla = "K" ]]; then
   print " "
   print " Opcao escolhida: $opc "
   print " "
   exit
fi
}

#############
## inicio  ##
#############
linha_atual=4
while [ true ]; do
print "\033[0m"
clear
   pos1='\033[0m'
   pos1='\033[0m'
   pos2='\033[0m'
   pos3='\033[0m'
   pos4='\033[0m'
   pos5='\033[0m'
   pos6='\033[0m'
   pos7='\033[0m'
   
   # De acordo com a linha, a posicao escolhida\
   # vai estar em vermelho negrito
   case $linha_atual in 
      4)
         pos1='\033[41m'   
         opc=1
         ;;
      5)
         pos2='\033[41m'
         opc=2
         ;;     
      6)
         pos3='\033[41m'
         opc=3
         ;;
      7)
         pos4='\033[41m'
         opc=4
         ;;
      8)
         pos5='\033[41m'
         opc=5
         ;;
      9)
         pos6='\033[41m'
         opc=6
         ;;
      10)
         pos7='\033[41m'
         opc=7
         ;;
         
      *) # para valores fora de posicao
         if [ linha_atual -lt 4 ]; then
            pos1='\033[41m'
            linha_atual=4
         else
            pos7='\033[41m'
            linha_atual=10
         fi
   esac
         
   # Chamando a funcao menu              
   menu

done



reply via email to

[Prev in Thread] Current Thread [Next in Thread]