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

Responder a