Без кавычек оболочка выполняет расширение pathname (glob )для класса символов []
, поэтому, предположительно, у вас есть файлы с именами e
, g
, k
, m
, q
в текущем каталоге --, отсюда и результат.
echo
в основном просто печатает результат расширения пути, не более того.
Возьмем один пример,echo [quasi-star]
:
Результатом расширения для [quasi-star]
будет любой одиночный символ изquasijklmnopqrstar
(дубликатов, сохраненных намеренно ). С точки зрения оболочки, поскольку окружающих символов нет, оно будет просто соответствовать любому имени файла с одним символом в текущем каталоге из расширения.