Muito legal sua sacada eim, mas ainda... ele indentifica que ${#me...@]} 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: shell-script@yahoogrupos.com.br [mailto:shell-scr...@yahoogrupos.com.br] Em 
nome de Fabiano Caixeta Duarte
Enviada em: terça-feira, 23 de fevereiro de 2010 16:40
Para: shell-script@yahoogrupos.com.br
Assunto: Re: [shell-script] metodos

 

  

Em 23 de fevereiro de 2010 16:05, Paulo Antonio da Silva
<paulo.anto...@aytycrm.com.br <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
> $v...@]
>        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 ${#me...@]} ]; 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]

Responder a