Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Метасимволы командного интерпретатора




Ряд символов, как было описано выше, имеют для командного интерпретатора специальное значение - это метасимволы. Они описаны в
таблице 2.1.

Метасимволы не входят в команды и обрабатываются в несколько проходов до начала выполнения реальных программ.

Таблица 2.1. Метасимволы командного интерпретатора

Метасимвол Интерпретация
> prog>file - переключить стандартный выходной поток в файл
>> prog>>file - добавить стандартный выходной поток к файлу
< prog<file - извлечь стандартный входной поток из файла
| p1 | p2 - передать стандартный выходной поток p1 как стандартный входной поток p2
<<str " Документ здесь ": стандартный входной поток задается в последующих строках до строки, состоящей только из символов str. По умолчанию в данных интерпретируются метасимволы \, $ и ``. Если необходимо предотвратить в данных интерпретацию всех метасимволов, необходимо экранировать строку str, предварив обратной косой или взяв в двойные или одиночные кавычки.
* Задает в имени файла любую строку из нуля или более символов
? Задает любой символ в имени файла
[abc] Задает любой символ из [abc] в имени файла, при этом допускаются диапазоны, задаваемые при помощи дефиса -. Если первым символом после [ является!, с этой конструкцией сопоставляется любой символ, не входящий в квадратные скобки.
; Разделитель команд: p1; p2 - выполнить p1, затем p2.
& Выполняет предшествующую команду в фоновом режиме
`...` Инициирует выполнение команд(ы) в...; `...` заменяется на полученный в результате выполнения стандартный выходной поток
(...) Инициирует выполнение команд(ы)... в порожденном командном интерпретаторе
$1,$2,...$9 Заменяются аргументами командного файла
$var Значение переменной (ключевого параметра) var в сеансе
${var} Значение var: исключает коллизии в случае конкатенации переменной с последующим текстом
\ \c - использовать непосредственно символ c, \перевод строки - отбрасывается
'...' Непосредственное использование того, что в кавычках
"..." Непосредственное использование, но после того, как будут интерпретированы метасимволы $, `...` и \
# Начало комментария
var=value Присваивает значение value переменной var
p1&&p2 Выполнить p1; в случае успеха выполнить p2
p1||p2 Выполнить p1; в случае неудачи выполнить p2

Примечание

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

Перед выполнением команды каждое слово-аргумент команды просматривается в поисках метасимволов «*», «?» и «[». Если в слове есть один из этих символов, слово рассматривается как шаблон. Такое слово заменяется отсортированными в алфавитном порядке именами файлов, соответствующих шаблону. Если ни одно из имен файлов не соответствует шаблону, слово оставляется без изменений. Символ «.» в начале имени файла или сразу после «/», а также сам символ «/», должны сопоставляться явно.

При таком количестве метасимволов интерпретатора необходимо иметь возможность экранировать специальный символ от интерпретации. Для этого можно использовать апострофы, кавычки или обратную косую. При этом кавычки одного вида могут экранировать кавычки другого вида. Обратите внимание, что кавычки "", в отличие от апострофов, не экранируют строку полностью - интерпретатор заглядывает внутрь кавычек в поисках «$», «...» и «\».

В кавычках могут содержаться переводы строк, пробелы, табуляции, символы «;», «&», «(», «)», «|», «^», «<» и «>». Задавая имя файла в кавычках, можно создать файлы с такими нетривиальными символами в именах. Впрочем, делать это не рекомендуется, так как работать с такими именами файлов неудобно.

 

 

Вопросы для самопроверки

 

1. Перечислите известные вам командные оболочки Unix-систем и их основные особенности.

2. Опишите процедуру запуска командного интерпретатора.

3. Что по умолчанию содержит приглашение командной оболочки?

4. В чём заключается работа интерпретатора после того, как пользователь ввёл команду?

5. Перечислите основные возможности большинства командных интерпретаторов.

6. Чем определяется количество команд, хранящихся в истории командной оболочки?

7. Как в bash запускается автопродолжение команд?

8. Что такое шаблон файлов?

9.

 

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных