ls $myvar1/*.txt
Se nomes de caminhos fossem expandidos antes de variáveis, isso procuraria nomes de arquivos correspondentes a *.txt
em um diretório chamado $myvar1
, o que você provavelmente não teria. Depois disso, ele expandiria $myvar1
para o caminho para seu diretório inicial, deixando /home/username/*.txt
, que não é o mesmo que expandir o caminho primeiro e depois procurar por nomes de arquivos terminados em .txt
no diretório inicial.
Em geral, como os nomes de arquivos podem conter sinais $
, acho que a ordem de expansão sempre será importante. Considere qualquer script usando um glob como *
em um diretório contendo um arquivo chamado $PATH
.
O oposto, variáveis contendo caracteres glob, é mais fácil de contornar, já que você controla os valores de suas variáveis.