Sem as aspas, o shell está fazendo a expansão do nome do caminho (glob) na classe de caractere []
, então presumivelmente você tem arquivos nomeados e
, g
, k
, m
, q
in o diretório atual - daí o resultado.
echo
é basicamente apenas imprimir o resultado da expansão do nome do caminho, nada mais.
Vamos dar um exemplo, echo [quasi-star]
:
O resultado da expansão para [quasi-star]
seria qualquer caractere único de quasijklmnopqrstar
(as duplicatas são mantidas intencionalmente). Do ponto de vista do shell, como não há caracteres circunvizinhos, portanto, ele corresponderia a qualquer nome de arquivo de caractere único no diretório atual da expansão.