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

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

Re: [shell-script] test


From: jefferson alexandre
Subject: Re: [shell-script] test
Date: Wed, 23 Nov 2005 08:39:24 -0200

Em 23/11/05, Herbert Alexander Faleiros <address@hidden> escreveu:
>
>  On Tuesday 22 November 2005 21:01, barsaabc wrote:
> [cut]
> > se for um arquivo ele fala que e um arquivo se for um diretorio ele fala
> que
> > e um diretório se não exite ele fala que não existe. usando o test. tem
> > como?
>
> Sim, olha só (existem várias maneiras de se efetuar isto):
>
> $ ./teste .
> . é um diretório
>
> $ ./teste teste
> teste é um arquivo regular
>
>
> Agora o código do script:
>
> $ cat teste
> #!/bin/sh
>
> test -f $1 && echo $1 é um arquivo regular || \
> (test -d $1 && echo $1 é um diretório || echo não encontrado)
>
>
> Explicando:
>
> test -f arquivo -> verifica se o parâmetro passado ao test é um arquivo
> regular (se ele existir, claro). já o test -d diretorio -> o mesmo, só que
>
> agora testa se é o arquivo existe e ele é um diretório.
>
> Mais detalhes: man test
>
> Os operadores lógicos encadeados && (e) e || (ou) trabalham com a saída do
>
> test controlando qual mensagem será exibida, ou seja, seria algo como:
>
> test -f $1
>
> if [ $? = 0 ]; then
>   echo $1 é uma arquivo regular.
>   exit 0
> fi
>
> test -d $1
>
> if [ $? = 0 ]; then
>   echo $1 é um diretório.
>   exit 0
> else
>   echo $1 não encontrado.
>   exit 1
> fi
>
>
> Ou ainda (fazendo da maneira correta):
>
> if [ -f $1 ]; then
>   echo $1 é uma arquivo regular.
> elif [ -d $1 ]; then
>   echo $1 é um diretório.
> else
>   echo $1 não encontrado.
>   exit 1
> fi
>
> Se quiser fazer sem o test, (um exemplo) poderia ser também:
>
> $ ./teste teste
> teste provavelmente é um arquivo regular.
> $ ./teste .
> . é um diretório.
>
>
> O código neste caso é o seguinte:
>
> $ cat teste
> #!/bin/sh
>
> file $1 | grep -q dir && echo $1 é um diretório. || \
> echo $1 provavelmente é um arquivo regular.
>
>
> Até,
>
> Herbert.
>
>
>  ---------------------------------------------------------------------
> 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
> ---------------------------------------------------------------------
>
>
>
>  *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
> <http://br.rd.yahoo.com/SIG=12fbf194s/M=365837.7000707.7924794.2369893/D=brclubs/S=2137111254:HM/Y=BR/EXP=1132723301/A=2950750/R=2/id=noscript/SIG=10tift5qr/*http://br.movies.yahoo.com/>
> ------------------------------
> *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>.
>
>


--
[ ] 's
Soboj ostat'sya dol'she.
Aeria Gloris.


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



reply via email to

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