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
-----Mensagem original-----
De: [email protected] [mailto:[email protected]] Em
nome de Julio C. Neves
Enviada em: terça-feira, 23 de fevereiro de 2010 14:17
Para: [email protected]
Assunto: Re: [shell-script] metodos
Olá Fabiano,
uma dicazinha que tenho certeza vc irá gostar: a partir do Bash 4.0 já
existem arrays associativos. Desta forma vc pode ter em um só vetor, cujo
índice seja o Item do menu e o valor, o nome do arquivo. Veja:
$ declare -A frutas
$ frutas[banana]=amarela
$ frutas[maçã]=vermelha
$ echo ${frut...@]}
vermelha amarela
$ echo ${!frut...@]}
maçã banana
Abraços,
Julio
Cursos de Shell e Zenity em 2 fins de semana?
- SP turma de Shell em 29/03 - ligue (11)2125-4747;
- Floripa turma Shell 12/04 http://www.seventreinamentos.com.br;
- DF turma de Shell em 17/04 - ligue (61) 3223-3000;
- Aracaju turma de Shell em 12/05 - [email protected];
- RJ turma de Shell em 14/06 - ligue (21)2210-6061;
- Turmas fechadas em outras cidades ligue (21) 8112-9988.
Em 23 de fevereiro de 2010 12:27, Fabiano Caixeta Duarte <
[email protected]> escreveu:
>
>
> Em 23 de fevereiro de 2010 11:59, Paulo Antonio da Silva
> <[email protected] <paulo.antonio%40aytycrm.com.br>> escreveu:
>
> > Pessoal,
> >
> > Gostaria de fazer um método que leia um arquivo para montar um case(já
> explico);
> >
> > Tenho um arquivo onde tem o nome do arquivo que deve abrir e o path dele
> separado por ; ex:
> >
> > #Cat editor.txt
> > usuarios;/temp/user.txt
> > computadores;/temp/comp.txt
> >
> > Essa função teria que ler o arquivo e montar o case conforme abaixo;
> >
> > ##############################################
> > # MENU #
> > #--------------------------------------------#
> > #--------------------------------------------#
> > 1 - usuario
> > 2 - computadores
> > 0 - voltar
> > #--------------------------------------------#
> > #--------------------------------------------#
> > ##############################################
> >
> > 1) usuarios ;;
> > 2) computadores ;;
> > 0) editor ;;
> > *) Opcao invalida! ; clear ; echo Opcao invalida!; editor ;;
> >
> > usuarios() {
> > nano /temp/user.txt
> > editor
> > }
> > computadores() {
> > nano /temp/comp.txt
> > editor
> >
> >
> >
> > ##############Abaixo um script que estou tentando fazer, consegui fazer
> um script que gera o resultado que preciso mas quero 1 script que leia esse
> arquivo txt e gere as opções;
> >
> > editor(){
> >
> > echo "##############################################"
> > echo "# MENU #"
> > echo "#--------------------------------------------#"
> > echo "#--------------------------------------------#"
> >
> > i=1
> > while read menu_list
> > do
> > menu=$(echo $menu_list | cut -d ";" -f 1)
> > echo " $i" - "$menu"
> > i=$(($i+1))
> > done < editor.txt
> >
> > echo " 0 - Voltar "
> > echo "#--------------------------------------------#"
> > echo "#--------------------------------------------#"
> > echo "##############################################"
> >
> > echo -n "Digite uma opcao:"
> >
> > read opcao
> > clear
> >
> > case $opcao in
> >
> > i=1
> > while read menu_list
> > do
> > menu=$(echo $menu_list | cut -d ";" -f 1)
> >
> > $i) $menu ;;
> >
> > i=$(($i+1))
> > done < editor.txt
> >
> > 0) editor ;;
> > *) "Opcao invalida!" ; clear ; echo Opcao invalida!; editor ;;
> >
> > esac
> >
> > }
> > i=1
> > while read menu_list
> > do
> > menu=$(echo $menu_list | cut -d ";" -f 1)
> > path=$(echo $menu_list | cut -d ";" -f 2)
> >
> > $menu() {
> > nano $path
> > clear
> > editor
> > }
> >
> > i=$(($i+1))
> > done < editor.txt
> >
> > #Executa metodo Editor
> > editor
> >
> >
>
> Paulo,
>
> Sugiro utilizar arrays, sendo um para itens do menu e outro para os
> nomes dos arquivos, assim menu[0] teria seu arquivo equivalente arq[0]
>
> Veja aí e poste o código funcional para que possamos avançar.
>
> --
> 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]
------------------------------------
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: [email protected]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil
Links do Yahoo! Grupos