Em 23 de fevereiro de 2010 11:59, Paulo Antonio da Silva <paulo.anto...@aytycrm.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