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

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

[shell-script-pt] Expansão de nomes de arquivos: if x [[ -e ]]


From: address@hidden
Subject: [shell-script-pt] Expansão de nomes de arquivos: if x [[ -e ]]
Date: Sun, 12 Apr 2020 17:34:49 -0300
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0

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
------------------------------------------------------------------------------------------------



reply via email to

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