Unix Man (Справочное руководство)


CSH(1) - часть 8


$$

Подставляет номер (десятичный) процесса, породившего процесс интерпретатора shell.

Подстановка Команд и Имен Файлов


Подстановка команд и имен файлов применяется выборочно к аргументам встроенных команд. Это означает, что части выражений, которые не являются оцениваемыми, не подвергаются этим раскрытиям. Для команд, которые не являются внутренними по отношению к интерпретатору shell, имя команды подлежит подстановке отдельно от списка аргументов. Это происходит много позже, после выполнения переадресации ввода-вывода, и в процессе, порожденном главным процессом интерпретатора shell.

Подстановка Команд


Подстановка команд указывается включением команды в обратные кавычки. Вывод, производимый такой командой, как правило, помещается в отдельные слова, разделенные пробелами, знаками табуляции и признаками новой строки, где нулевые слова отбрасываются, после чего этот текст помещается в оригинальную строку. Внутри двойных кавычек только признаки новой строки приводят к образованию новых слов; пробелы и знаки табуляции сохраняются.

В любом случае, находящийся в конце единственный признак новой строки не образует нового слова. Заметим, существует вероятность того, что в результате подстановки команды будет произведена только часть слова, даже если выходные данные команды составляют полную строку.

Подстановка Имен Файлов


Если некоторое слово содержит любой из символов: *, ?, [ или {, или начинается с символа ~, то это слово является кандидатом на выполнение подстановки имен файлов, также известной, как глобальная подстановка. Это слово, затем, принимается за образец и заменяется на перечень имен файлов, отсортированных в алфавитном порядке, которые соответствуют этому образцу. В некотором списке слов, задающем подстановку имен файлов, ошибкой является отсутствие образца для сопоставления с существующим именем файла, но при этом не требуется, чтобы каждый образец сопоставлялся. Только метасимволы *, ? и [ подразумевают сопоставление образцу, символы ~ и { скорее сродни аббревиатурам.

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

Символ ~ в начале имени файла используется для ссылки на собственные (home) каталоги. Будучи единственным, он раскрывается, как входной (home) каталог вызывающего пользователя, отображенный в значении переменной home. Когда за этим символом следует имя, содержащее буквы, цифры и символы -, интерпретатор shell осуществляет поиск пользователя с таким именем и подставляет его входной (home) каталог. Так, запись ~ken может быть раскрыта как /usr/ken, а запись ~ken/chmach - в виде /usr/ken/chmach. Если за символом ~ следует символ, отличный от буквы или символа /, или символ ~ появляется не в начале слова, то он остается без изменений.

Метаназначение a{b,c,d}e является сокращением для abe ace ade. Порядок следования слева направо сохраняется, при этом результаты сопоставления сортируются отдельно, начиная с нижнего уровня, чтобы сохранить этот порядок. Эта конструкция может быть вложенной. Так, запись вида ~source/sl/{oldls,ls}.c в предположении, что собственным каталогом для sourse является / usr/source, раскрывается в следующие имена файлов: /usr/source /sl/oldls.c и /usr/source/sl/ls.c, независимо от того, существуют или нет эти файлы. Аналогично, форма вида ../{memo,*box} может быть раскрыта как ../memo ../box ../mbox. (Заметим, что имя memo не будет упорядочено наряду с результатами сопоставления по образцу *box.) В виде исключения символы {, } и {} проходят без изменений.

Средство Контроля Орфографии




Начало  Назад  Вперед



Книжный магазин