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 +]+ <[EMAIL PROTECTED]> 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 [EMAIL PROTECTED]
> 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: [EMAIL PROTECTED]
> ---------------------------------------------------------------------
> 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:
>    [EMAIL PROTECTED]<[EMAIL PROTECTED]>
>
>    - 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]



---------------------------------------------------------------------
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: [EMAIL PROTECTED]
---------------------------------------------------------------------
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

 
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:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a