Olá,
Estou com uma
curiosidade a respeito de como o if e o [[ ]] respondem à
expansão de nomes.
Vamos supor que eu
tenha alguns arquivos que iniciam com os mesmos caracteres:
[root@host ~]# touch
arq{"",1,2,3}
[root@host ~]# ls arq*
arq arq1 arq2 arq3
Os arquivos foram
criados e o ls aceita o coringa *:
[root@host ~]# ls arq*
arq arq1 arq2 arq3
Eu gostaria de testar
se arquivos arq* existem (qualquer um começando com 'arq',
usando o coringa '*'):
Com if funciona usando o ls ...
[root@host ~]# if ls
./arq*> /dev/null; then echo "Existe"; else echo "Não
existe"; fi
Existe
Mas se eu usar o [[ -e
]] (test moderno, testando se o arquivo existe) não funciona com
o coringa...
[root@host ~]# [[ -e
./arq ]] && echo Existe || echo Não existe
Existe
[root@host ~]# [[ -e ./arq1 ]] && echo Existe || echo
Não existe
Existe
[root@host ~]# [[ -e ./arq* ]] && echo Existe || echo
Não existe # <----
Não existe
É pura curiosidade.
Posso usar o if, mas gostaria de saber se realmente o [[ ]] não
permite expansão de nomes.
Abraços a todos!
Renato Romano
São B. Campo/SP
------------------------------------------------------------------------------------------------
_______________________________________________