Agora to no caminho, fazer mais alguns testes aqui e posto o resultado.
Obrigado
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: [email protected] [mailto:[email protected]] Em
nome de Fabiano Caixeta Duarte
Enviada em: terça-feira, 23 de fevereiro de 2010 16:40
Para: [email protected]
Assunto: Re: [shell-script] metodos
Em 23 de fevereiro de 2010 16:05, Paulo Antonio da Silva
<[email protected] <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
__________ Information from ESET NOD32 Antivirus, version of virus signature
database 4889 (20100223) __________
The message was checked by ESET NOD32 Antivirus.
http://www.eset.com
[As partes desta mensagem que não continham texto foram removidas]