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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] problema nas clausulas do comando if


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] problema nas clausulas do comando if
Date: Thu, 3 May 2007 08:50:51 -0300

Acho que me expressei mal.

Tu copias os dois primeiros parâmetros passados para o script dessa forma:

ARQENT=$1
ARQSAI=$2

Existe um teste mais simples, porém não muito robusto, que seria testar o
número de parâmetros

if [ $# -ge 2 ]; then # se vc tiver pelo menos 2 parametros...
...
fi

MAS se vc executar o script dessa forma

./script.sh "" ""

vc passou 2 parametros. vazios, mas passou.é claro que isso 'raramente' vai
acontecer.

Agora, um teste interessante seria ver se o ARQENT é um arquivo regular,
isso vc pode fazer trocando o teste -z por -f nesse arquivo. ai sim o seu
teste seria bem robusto!

Att

Tiago

On 5/2/07, Renato de Oliveira Diogo <address@hidden> wrote:
>
>   Olá
>
> funcionou perfeitamente deste jeito
>
> if [ -z "${ARQENT}" -o -z "${ARQSAI}" ];
>
> vlw.. muito obrigado
>
> do outro não sei se entendi direito... mas vc está dizendo se a string
> (que
> vem por referencia) tem até 2 conjuntos de parametros?
>
> []s
>
> On 4/28/07, Tiago Barcellos Peczenyj 
> <address@hidden<tiago.peczenyj%40gmail.com>>
> wrote:
> >
> > Teste dessa forma:
> >
> > if [ -z "${ARQENT}" -o -z "${ARQSAI}" ];
> >
> > normalmente esse tipo de erro acontece devido ao uso de uma variavel sem
> > valor.
> >
> > na verdade vc poderia testar se a variavel $# é igual a 2 tambem ;-)
> >
> > []´s Tiago
> >
> > On 4/28/07, Renato de Oliveira Diogo 
> > <address@hidden<rdiogo01%40yahoo.com.br>
> <rdiogo01%40yahoo.com.br>>
> > wrote:
> > >
> > >
> > >
> > >
> > >
> > >
> > > Olá pessoal
> > >
> > > estou construindo um script e estou checando a passagem de
> parametros...
> > >
> > > ==
> > > ARQENT=$1;
> > > ARQSAI=$2;
> > > COUNT=1;
> > > ARQTEMP=/tmp/tmpscriptsh_vararqtemp
> > >
> > > LINHA_EXT="c_1,c_2,c_3,c_4,c_5,c_6,c_7,c_8";
> > >
> > > if [ -z $ARQENT -o -z $ARQSAI ];
> > > then
> > > echo "script v0.1 - Renato Diogo";
> > > echo "Sintaxe: script {arquivo_entrada} {arquivo_saida}"
> > > exit 1;
> > > fi
> > > ==
> > >
> > > Quandou vou testar, se nao passar nenhum parametro, entra normal, se
> > > passo os dois, também... mas quando coloco somente 1 (que era para
> > > entrar no if) dá o seguinte erro:
> > >
> > > ==
> > > ./script.sh: line 35: [: argument expected
> > > ==
> > >
> > > Alguem pode me dizer o pq?
> > >
> > > []s
> > >
> > >
> >
> > --
> > Tiago B Peczenyj
> > Linux User #405772
> >
> > # cd /pub
> > # more beer
> >
> >
>
> --
> ________________________________________________
> Renato de Oliveira Diogo
>
> Blueeye Web Solutions
> 14-32243492
>
> Bacharel em Ciência da Computação
> UNESP - Bauru
> Mestrando em Ciência da Computação
> UNESP
>
> address@hidden <renato.diogo%40gmail.com>
> address@hidden <rdiogo01%40yahoo.com.br>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Tiago B Peczenyj
Linux User #405772

# cd /pub
# more beer


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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