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

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

RES: [shell-script] metodos


From: Paulo Antonio da Silva
Subject: RES: [shell-script] metodos
Date: Tue, 23 Feb 2010 18:17:15 -0300

Muito legal sua sacada eim, mas ainda... ele indentifica que ${#menu[@]} tem 1 
mas só mostra 2, não estou conseguindo ler todas as variaveis;

 

cat editor.txt 

afsdffdf;/tmp/arquivo1.txt

dsfsdfff;/tmp/arquivo2.txt

 

sh teste.sh 

##############################################

#                  MENU                      #

#--------------------------------------------#

#--------------------------------------------#

 1) afsdffdf

 2) dsfsdfff

 0 - Voltar                                   

#--------------------------------------------#

#--------------------------------------------#

##############################################

Digite uma opcao:1

2

/tmp/arquivo1.txt

##############################################

#                  MENU                      #

#--------------------------------------------#

#--------------------------------------------#

 1) afsdffdf

 2) dsfsdfff

 0 - Voltar                                   

#--------------------------------------------#

#--------------------------------------------#

##############################################

Digite uma opcao:

 

De: address@hidden [mailto:address@hidden] Em nome de Fabiano Caixeta Duarte
Enviada em: terça-feira, 23 de fevereiro de 2010 16:40
Para: address@hidden
Assunto: Re: [shell-script] metodos

 

  

Em 23 de fevereiro de 2010 16:05, Paulo Antonio da Silva
<address@hidden <mailto:paulo.antonio%40aytycrm.com.br> > escreveu:
> Pessoal,
>
> Estou tentando mas quando chega no case in não consigo associar a variável 
> montada com o case, podem me dar mais uma força?
>
> editor(){
>        echo "##############################################"
>        echo "#                  MENU                      #"
>        echo "#--------------------------------------------#"
>        echo "#--------------------------------------------#"
> i=1
> echo "" > /tmp/menu.temp
> while read menu_list
> do
> menu[i]=$(echo $menu_list | cut -d ";" -f 1)
> path[i]=$(echo $menu_list | cut -d ";" -f2)
> echo " $i) ${menu[i]}";
> var[i]=" $i) ${menu[i]} ;nano ${path[i]};;"
> i=$(($i+1))
> done < editor.txt
>        echo " 0 - Voltar                                   "
>        echo "#--------------------------------------------#"
>        echo "#--------------------------------------------#"
>        echo "##############################################"
> echo -n "Digite uma opcao:"
>        read opcao
>        clear
>        case $opcao in
> $var[@]
>        0) menu ;;
>        *) "Opcao invalida!" ; clear ; echo Opcao invalida!; editor ;;
>        esac
>
>
> }
> editor
>
> Obrigado
>
> Paulo
>

Paulo,

O problema aí é de lógica. Veja esta sugestão.

read opcao
if [ $opcao -le ${#menu[@]} ]; then
echo ${path[opcao]}
else
echo Opcao invalida!
editor
fi

Existem também algumas melhorias que podem ser feitas, mas vamos por partes ;)

-- 
Fabiano Caixeta Duarte
Especialista em Redes de Computadores
Linux User #195299
Ribeirão Preto - SP





[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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