[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Erro com variaveis!
From: |
Tiago Barcellos Peczenyj |
Subject: |
Re: [shell-script] Erro com variaveis! |
Date: |
Sun, 14 Jan 2007 17:20:32 -0200 |
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 <address@hidden> 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
- Erro com variaveis!, Benedito Portela, 2007/01/14
- Re: [shell-script] Erro com variaveis!,
Tiago Barcellos Peczenyj <=