[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Comando no teste do if
From: |
Julio C. Neves |
Subject: |
Re: [shell-script] Comando no teste do if |
Date: |
Fri, 14 Sep 2012 15:54:05 -0300 |
Leonardo, o cmd if do shell é muito forte e seu uso é totalmente diferente
dos ifs caretas que vc vê por ai. Se vc quiser entendê-lo (e acho que vc
deveria), leia o final do Papo de Botequim
3<http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo003#O_Comando_if>e
o Papo
de Botequim
4<http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo004#O_Comando_test>
.
Lá vc verá que o if testa instruções e não condições e por isso fazer if [
$? ... ] em 99% dos casos e desnecessário (no entanto é o que vc mais vê na
vida real). Verá tb que a construção [...] no duro é o cmd test então qdo
vc usa if [...], o que vc está fazendo é usando o if para testar a saída co
cmd test.
Ora, se vc deseja testar o ls, é só fazê-lo direto, isto é,
if ls -l *.[c,C][s,S][v,V]; then
Só que se houver algum arquivo, este arquivo será listado e se não houver,
será dado um errpo. Então essa linha deveria ser:
if ls -l *.[c,C][s,S][v,V] > /dev/null 2>&1; then
Recomendo no entanto, que a solução seja algo como:
ls * | grep -qi \.csv$ || echo não existem arquivos csv
Abcs,
Julio
*
*
Em 14 de setembro de 2012 09:24, Leonardo Bacha Abrantes <
address@hidden> escreveu:
> **
>
>
> Bom dia pessoal,
>
> estou fazendo um script e preciso testar se existem arquivos .csv em uma
> pasta, então fiz o seguinte teste:
>
> if [ `ls -l *.[c,C][s,S][v,V]` -ne 0 ] ; then
>
> isso não funcionou, retornando sempre o erro:
> /etc/scripts/csv.sh: line 12: [: too many arguments
>
> então resolvi da forma abaixo, mas queria saber pq o teste acima não
> funcionou.
>
> ls -l *.[c,C][s,S][v,V] 2> /dev/null
> if [ $? -ne 0 ] ; then
>
> --
>
> outra pergunta, ao invés de -ne não poderia ser != ?
>
> obrigado!
> []'s
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
[As partes desta mensagem que não continham texto foram removidas]
Re: [shell-script] Comando no teste do if,
Julio C. Neves <=