[ Страница назад | Страница вперед | Содержание | Индекс | Домой | Юридическая информация | Поиск ]

Руководство пользователя: Операционная система и устройства


Подстановка имен файлов в оболочке Korn (POSIX)

Оболочка Korn (POSIX) подставляет имена файлов вместо всех командных слов, заданных в переменной Word. Имя файла определяются с помощью специальных символов, указанных в слове. Если в командном слове содержатся символы *), ? или [, а флаг -f не был задан, то оболочка рассматривает это слово как шаблон. Вместо указанного слова оболочка подставляет список имен файлов, удовлетворяющих шаблону, отсортированный в соответствии с последовательностью упорядочения для текущей локали. Если ни одно имя файла не соответствует шаблону, то слово не изменяется.

Если для подстановки имен файлов оболочка применяет шаблон, то символы . и / должны сопоставляться явно.

Примечание: Оболочка Korn не рассматривает эти символы как специальные.

Символы подстановки имеют следующее значение:

* Заменяет любую строку, в том числе пустую.
? Заменяет любой символ.
[...] Заменяет любой из заключенных в скобки символов. Пара символов, разделенных символом -, заменяет любой символ из указанного интервала в соответствии с последовательностью упорядочения, определяемой текущей локалью. Если первый символ, указанный за открывающей скобкой [, - символ !, то заменяются все символы, кроме символов в скобках. Для того чтобы указать в наборе символов дефис (-), задайте его в качестве первого или последнего символа.

Выражение [:класс_символов:] заменяет имена файлов из указанного интервала. Система выберет все имена файлов, в которых содержится хотя бы один символ из указанного класса. Определение классов задается в разделе LC_CTYPE подпрограммы setlocale . Распознаются все классы символов, заданные в текущей локали.

Ниже приведены некоторые имена классов символов:

Например, [[:upper:]] соответствует любой заглавной букве.

Оболочка Korn поддерживает расширение имен файлов на основе элементов и символов последовательности упорядочения, или классов эквивалентности.

Список_Шаблонов - это список из одного или нескольких шаблонов, элементы которого отделены друг от друга символом |. Составные шаблоны содержат одно или несколько выражений следующего вида:

?(Список_Шаблонов) Заменяет любой из указанных шаблонов.
*(Список_Шаблонов) Заменяет ноль и более указанных шаблонов.
+(Список_Шаблонов) Заменяет по крайней мере один указанный шаблон.
@(Список_Шаблонов) Заменяет в точности один из указанных шаблонов.
!(Список_Шаблонов) Заменяет любую строку, в том числе один из указанных шаблонов.

На соответствие шаблону накладываются определенные ограничения. Если имя файла начинается с точки (.), то он соответствует только тому шаблону, который также начинается с точки. Например, символ * соответствует именам файлов myfile и yourfile, но не соответствует именам .myfile и .yourfile. Для таких имен файлов нужно задать шаблон следующего вида:

.*file

Если нет ни одного имени файла, соответствующего шаблону, то в качестве результата поиска возвращается сам шаблон.

В именах файлов и каталогов не должны содержаться символы * , ? , [ или ], так как при сравнении с шаблоном они могут вызвать бесконечную рекурсию (бесконечный цикл).

Удаление кавычек

Символы кавычек, обратной косой черты (\), одинарных кавычек (') и двойных кавычек (") будут удалены из исходного текста, если только они сами не были помещены в кавычки.


[ Страница назад | Страница вперед | Содержание | Индекс | Домой | Юридическая информация | Поиск ]