shell-script-pt
[Top][All Lists]
Advanced

[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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]