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.