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: shell-script@yahoogrupos.com.br [mailto:shell-scr...@yahoogrupos.com.br] Em nome de Julio C. Neves Enviada em: terça-feira, 23 de fevereiro de 2010 14:17 Para: shell-script@yahoogrupos.com.br 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 - andersonriz...@gmail.com; - 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 < fcd.lis...@gmail.com> escreveu: > > > Em 23 de fevereiro de 2010 11:59, Paulo Antonio da Silva > <paulo.anto...@aytycrm.com.br <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: shell-script-unsubscr...@yahoogrupos.com.br --------------------------------------------------------------------- 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