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 [email protected], "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