O colchete aberto [
é um caractere especial para o shell; ele abre um algoritmo de correspondência de padrões que diz "corresponde a qualquer um dos caracteres dentro dos colchetes". Como você tem 4 arquivos nomeados como: 1, 4, 5 e 6 em seu diretório atual, quando os caracteres dentro dos colchetes contêm qualquer um desses dígitos, seu shell substitui a correspondência de padrões por esses nomes de arquivos. Quando você usa echo [ 9876543210 ]
, está chamando echo com três parâmetros: [
, 9876543210
e ]
.
Você deve citar os parâmetros da sua instrução echo para evitar que o shell a veja como uma solicitação de correspondência de padrões.
$ echo '[9876543210]'
[9876543210]
(ou remova os arquivos nomeados 1, 4, 5 e 6 - mas isso é uma solução alternativa para demonstrar o comportamento, não uma correção).