Ola faça alguns testes, troque o seu read , case... esac por: read -sn1 sel
case "${sel}" in ";" ) echo 1 ; dest='FLU' ;; "." ) echo 2 ; dest='Zyn' ;; "," ) echo 3 ; dest='bris';; *) echo "nenhum desses!" ;; esac Em shell é possivel definir funções no formato nome_da_funcao(){ comando 1 comando 2 ... comando N } vc pode declarar variaveis dentro e fora das funções, entretanto se vc quer que ela seja local, deve informar isso na forma local VARIAVEL Suas funções podem ser parametrizadas, nesse caso os parametros são lidos atraves das variaveis $1 .. $9 , $* $@ e $# conforme o artigo que escrevi abaixo: http://centosbr.org/modules/smartsection/item.php?itemid=108 (Alias estou devendo outros artigos, enfim, sou brasileiro e não desisto nunca) Seu script é pequeno, não vejo por que criar uma função alem de exercitar este conceito. Vc precisa investigar o funcionamento do mesmo para entender por que não está funcionando como vc gostaria. Por fim, tente usar a opção de debug do shell com set +x []´s Tiago On 1/14/07, Benedito Portela <[EMAIL PROTECTED]> wrote: > > > Pessoal estou fazendo um script e não estou sabendo como resolver um > problema com variaveis! Talvez seja um erro bobô, pois shell parece > com outras linguagens mas tem varias particularidades! Bom o problema > é esse:Fiz um loop como While : do e com três variaveis, melhor que > esplicar é mostrar: > > #!/bin/bash > > #Programa de Controle > > > dest='FLUID' > dest_ant='FLUID' > > aconnect Midi $dest > > while : > > do > > read -sn1 sel > > case $sel in > > ";" ) dest='FLU' ;; > > "." ) dest='Zyn' ;; > > "," ) dest='bris';; > > esac > > aconnect Midi $dest > > aconnect Midi $dest_ant -d > dest_ant=$dest > done > > O problema é que depois que eu faço o "dest_ant=$dest" as duas > variaveis ficam sempre iguais! Começa o loop denovo e aperto a tecla a > $dest ganha outro valor e automaticamente a $dest_ant tb! No basic > isso funcionaria como eu queria, mas aqui eu não sei qual é logica! > Outra coisa, como se faz sub-rotinas tipo como no basic o gosub ou até > mesmo o go to ? > Obg > Bené > > -- Tiago B Peczenyj Linux User #405772 # cd /pub # more beer