Ola eu criei uma função aconnect que faz o seguinte: -- aconnect(){ echo "aconnect ${*}" ; } -- alem disso eu imprimo o caracter digitado
$./script.sh aconnect Midi FLUID Vc digitou ';' aconnect Midi FLU aconnect Midi FLUID -d # FLUID é o dest anterior, certo? Vc digitou '.' aconnect Midi Zyn aconnect Midi FLU -d # agora tem que ser o FLU, certo? Vc digitou ',' aconnect Midi bris aconnect Midi Zyn -d # agora tem que ser o Zyn, certo? Vc digitou ';' aconnect Midi FLU aconnect Midi bris -d # agora tem que ser o bris, certo? Vc digitou '.' aconnect Midi Zyn aconnect Midi FLU -d #FLU again... Vc digitou ',' aconnect Midi bris aconnect Midi Zyn -d # Zyn again... Me parece que o comportamento do script está correto. On 1/14/07, Benedito Portela <[EMAIL PROTECTED]> wrote: > > > O problema não esta na variavel do case, mas na outra variavel que era > pra ser a referencia do que esta conectado antes pra que possa ser > deconectado pelas opções da variavel $sel ! > Esse script é só o começo, o que quero fazer é mais complexo, mas não > tão dificil! Vai de fazer e desfazer conexões do alsa/jack entre > programas e perifericos até envio de messagem em Hex pelo comando > amidi, por isso eu perguntei, em outro topico, como se converte de > decimal pra Hexdecimal! Bom se fosse Basic eu tiraria isso tudo de > letra, será que tem alguma linguagem Basic pra linux? Assim eu > deserolaria mais rapido! Mesmo assim já estou envolvido com comando do > shell então prefiro aprede-lo! Creio que será muito util para mim e em > qualquer projeto futuro! > Bené > > --- Em shell-script@yahoogrupos.com.br, "Tiago Barcellos Peczenyj" > <[EMAIL PROTECTED]> escreveu > > > > > 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 > > > > > > -- Tiago B Peczenyj Linux User #405772 # cd /pub # more beer