Cada linha que você escreve deve ter um comando, geralmente a primeira palavra.
Para obter algo impresso, um comando comum é echo
.
Se o pwd (diretório de trabalho atual) tiver arquivos a
, aa
, bb
e ccc
.
Então, este comando irá imprimir todos os arquivos no diretório:
$ echo *
a aa bb ccc
E este comando irá imprimir todos os arquivos no pwd que possuem um caractere:
$ echo ?
a
No entanto, se você não fornecer um comando, a primeira "palavra" (na maioria das vezes: até o primeiro espaço em branco) será considerada como o comando.
Se você fornecer apenas o asterisco *
, a primeira palavra resultante da expansão do asterisco será usada como o comando a ser executado.
Se o comando a
não existir, um erro será impresso:
$ *
bash: a: command not found
Se houver um comando chamado a
, ele será chamado com os três argumentos aa bb ccc
.
Como você não fornece mais detalhes, só podemos fazer uma estimativa de qual comando está sendo executado com o nome a
(não é um comando padrão). Também não sabemos qual shell você está usando.
Mas todos os seus exemplos mostram que o primeiro a
está ausente:
$ *
aa bb ccc ### missing first 'a'.
$ *?
aa bb ccc ### missing first 'a'.
$ * *
a aa aa bb bb ccc ccc ### missing first 'a'.
Exceto por:
$ ?
a aa bb ccc
De qual é difícil fazer qualquer conclusão, pois não sabemos qual comando é a
.