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 <[EMAIL PROTECTED]> 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 <[EMAIL 
> PROTECTED]<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 <[EMAIL 
> > PROTECTED]<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
>
> [EMAIL PROTECTED] <renato.diogo%40gmail.com>
> [EMAIL PROTECTED] <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]

Responder a