Мне интересно, какое поведение следует команде printf
при использовании подстановочных знаков. Этот вопрос первоначально задавался мне кем-то другим, но я сам смущен поведением и хотел бы получить объяснение, которое поможет мне понять, как работает команда printf
.
Учитывая следующий каталог:
$ ls -a
.a a.b ab.c b .b b.a b.c c c.d d d.e e
$ printf [abcd]*[abcd]
выведет a.b
. $ ls [abcd]*[abcd]
дает
a.b:
ab.c:
b.a:
b.c:
c.d:
в качестве вывода, и $ echo [abcd]*[abcd]
приводит к a.b ab.c b.a b.c c.d
Почему у printf другой вывод? Это связано с приоритетами расширения регулярных выражений / оболочки?