[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] CASE + Função
From: |
Tiago Barcellos Peczenyj |
Subject: |
Re: [shell-script] CASE + Função |
Date: |
Fri, 24 Feb 2006 11:20:17 -0300 |
Veja se assim não funfa:
#!/bin/bash
LOGS(){
if [ "$1" == "" ]; then
echo "Necessário digitar o e-Mail."
fi
}
## MAIN
case "$1" in
--logs|-l)
LOGS "$2" ;;
*) echo "..." ;;
esac
O que acontece que $1... $9 são variaveis especiais que operam dentro do
script e funções. Entretanto o $1 de uma função não é a $1 do script. Assim
com o script, cada função acessa o seu conjunto de parâmetros. Vc estava
tentando acessar o argumento 2 da função LOGS, quando não estava passando
nenhum.
Pra ficar mais claro
#!/bin/bash
teste() {
echo "$1 -> $2 -> $3" # aqui vc pega os argumentos da funcao
}
echo "$1: $2 : $3" # aqui vc pega os argumentos do script
teste um dois tres # tcharam, vc ta passando outros argumentos...
#fim script
executa agora o script assim
./scritp 1 2 3
vc vai ver algo como
1 : 2 : 3
um -> dois -> tres
Outra forma é vc criar uma variavel comum.
#!/bin/bash
LOGS(){
if [ "x$EMAIL" == "x" ]; then
echo "Necessário digitar o e-Mail."
fi
}
## MAIN
EMAIL=$2
case "$1" in
--logs|-l)
LOGS ;;
*) echo "..." ;;
esac
(o lance do x$VAR == x eu peguei de uns scripts de alguns deamons, achei
interessante).
Abraços
Tiago
Em 24/02/06, +[+ Suicide|Solution +]+ <address@hidden> escreveu:
>
> Galera, resolvi dividir meu script por funções para ficar mais fácil,
> porém depois disso o IF, não funfa, to me quebrando aqui e não consegui
> entender o pq:
>
> Script:
> #!/bin/bash
> LOGS(){
> if [ "$2" == "" ]; then
> echo "Necessário digitar o e-Mail."
> fi
> }
>
> ## MAIN
> case "$1" in
> --logs|-l)
> LOGS;;
> *)
> esac
>
> Resultado:
> prompt> imsniff-logs -l
> Necessário digitar o e-Mail.
>
> prompt> imsniff-logs -l address@hidden
> Necessário digitar o e-Mail.
>
> Ou seja, passando o segundo parametro ou não o IF sempre interpreta o $2
> como vaziu!
> Estranho que se copia o bloco do if e passar para dentro do CASE, funfa!
> PQ???????
>
>
> --
> +++++++++++++++++++++++++++++++++++
> + Felipe Nogaroto Gonzalez \m/ +
> + <aka Suicide|Solution> +
> + Slackware Linux :^) +
> + http://suicide.bunghole.com.br +
> +++++++++++++++++++++++++++++++++++
>
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
>
>
>
> *Yahoo! Grupos, um serviço oferecido por:* PUBLICIDADE
> <http://br.ard.yahoo.com/SIG=12fcoh2t0/M=396547.7942355.8867957.2369893/D=brclubs/S=2137111254:HM/Y=BR/EXP=1140797401/A=3322891/R=2/id=noscript/SIG=154qqv6j6/*http://lt.dell.com/lt/lt.aspx?CID=11460&LID=316158&DGC=BA&DGSeg=DHS&DURL=http://www1.la.dell.com/content/products/category.aspx/desktops?c%3dbr%26l%3dpt%26s%3ddhs>
> ------------------------------
> *Links do Yahoo! Grupos*
>
> - Para visitar o site do seu grupo na web, acesse:
> http://br.groups.yahoo.com/group/shell-script/
>
> - Para sair deste grupo, envie um e-mail para:
> address@hidden<address@hidden?subject=Unsubscribe>
>
> - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
> Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
>
>
--
Tiago B Peczenyj
Linux User #405772
# cd /pub
# more beer
[As partes desta mensagem que não continham texto foram removidas]
- CASE + Função, +[+ Suicide|Solution +]+, 2006/02/24
- Re: [shell-script] CASE + Função,
Tiago Barcellos Peczenyj <=