Odpowiedzi:
Nawiasy klamrowe nie są wzorami wieloznacznymi. Sprawdź dokumentację rozszerzeń bash : nawiasy klamrowe są rozwijane na bardzo wczesnym etapie procesu, a wzorce symboli wieloznacznych są rozwijane w ostatnim kroku¹.
Początkowo komenda składa się z dwóch słów echo
, *{1..12}
. Po interpretacji nawiasów, polecenie zawiera 13 słów: echo
, *1
, *2
, ..., *12
. Następnie wzory symboli wieloznacznych są rozwijane. *1
rozwija się do listy nazw plików kończących się na 1
, która obejmuje nie tylko, file1
ale także file11
(która jest następnie sortowana w kolejności leksykograficznej). Podobnie *2
rozwija się do file12
i file2
(w tej kolejności). Więc masz echo
, file1
, file11
, file12
, file2
, a następnie pozostałe symbole wieloznaczne, które dopasowane pojedynczy plik: file3
, file4
, ..., file12
.
¹ Poza tym , jeśli postępujesz zgodnie z opisem instrukcji, ale „usunięcie cytatu” nie jest tak naprawdę rzeczą - cytaty są analizowane wcześniej niż proces interpretacji.