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


CSH(1) - часть 5


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

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

Подстановка Псевдонимов


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

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

Таким образом, если псевдонимом для команды ls является ls -l, то команда "ls /usr" будет преобразована в команду "ls -l /usr". Аналогично, если псевдоним для команды lookup был "grep \!^ /etc /passwd", то команда "lookup bill" будет преобразована к виду "grep bill /etc/passwd".

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

Отметим, что такой механизм допускает псевдонимы для представления метасинтаксиса синтаксического анализатора. Таким образом, мы можем назначить псевдоним печати "'pr\!* | lpr'", чтобы сформировать команду, которая разбивает на страницы свои аргументы для построчного принтера.

Существует четыре псевдонима команды csh, поставляемые с командой csh системы XENIX System V. Это pushd, popd, swapd и flipd. Эти псевдонимы поддерживают стек каталогов.




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