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]