[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]
- test, barsaabc, 2005/11/22