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çã bananaAbraç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 <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [email protected] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
