Оболочка Korn (POSIX) подставляет имена файлов вместо всех командных слов, заданных в переменной Word. Имя файла определяются с помощью специальных символов, указанных в слове. Если в командном слове содержатся символы *), ? или [, а флаг -f не был задан, то оболочка рассматривает это слово как шаблон. Вместо указанного слова оболочка подставляет список имен файлов, удовлетворяющих шаблону, отсортированный в соответствии с последовательностью упорядочения для текущей локали. Если ни одно имя файла не соответствует шаблону, то слово не изменяется.
Если для подстановки имен файлов оболочка применяет шаблон, то символы . и / должны сопоставляться явно.
Примечание: Оболочка Korn не рассматривает эти символы как специальные.
Символы подстановки имеют
следующее значение:
Выражение [:класс_символов:] заменяет имена файлов из указанного интервала. Система выберет все имена файлов, в которых содержится хотя бы один символ из указанного класса. Определение классов задается в разделе LC_CTYPE подпрограммы setlocale . Распознаются все классы символов, заданные в текущей локали.
Ниже приведены некоторые имена классов символов:
Например, [[:upper:]] соответствует любой заглавной букве.
Оболочка Korn поддерживает расширение имен файлов на основе элементов и символов последовательности упорядочения, или классов эквивалентности.
Список_Шаблонов - это
список из одного или нескольких шаблонов, элементы которого отделены друг от
друга символом |. Составные шаблоны содержат одно или
несколько выражений следующего вида:
На соответствие шаблону накладываются определенные ограничения. Если имя файла начинается с точки (.), то он соответствует только тому шаблону, который также начинается с точки. Например, символ * соответствует именам файлов myfile и yourfile, но не соответствует именам .myfile и .yourfile. Для таких имен файлов нужно задать шаблон следующего вида:
.*file
Если нет ни одного имени файла, соответствующего шаблону, то в качестве результата поиска возвращается сам шаблон.
В именах файлов и каталогов не должны содержаться символы * , ? , [ или ], так как при сравнении с шаблоном они могут вызвать бесконечную рекурсию (бесконечный цикл).
Символы кавычек, обратной косой черты (\), одинарных кавычек (') и двойных кавычек (") будут удалены из исходного текста, если только они сами не были помещены в кавычки.