Лабораторная работа №2


НазваниеЛабораторная работа №2
страница7/9
ТипЛабораторная работа
1   2   3   4   5   6   7   8   9

Недеструктивное перенаправление вывода и ввод до разделителя.


Эффект от использования символа > (больше) для перенаправления вывода в файл является деструктивным. Иными словами, команда

$ ls > file-list

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

$ ls >> file-list

дописывает вывод команды ls в конец файла file-list.

Симметричная по виду запись перенаправления ввода (с помощью символов <<) используется для организации так называемого ввода до разделителя:

$ cat <
Здесь командный интерпретатор, встретив оператор перенаправления <<, запомнил последовательность символов после него (END) как разделитель потока ввода. Все последующие строки, вплоть до строки, содержащей только этот разделитель, были переданы на вход команды cat в виде потока ввода.

Следует иметь в виду, что перенаправление ввода и вывода и стыковка команд осуществляются командными оболочками, которые поддерживают использование символов >, >> , | и др. Сами команды специальным образом эти символы не интерпретируют. Если нужно передать в команду один из этих символов в качестве параметра или использовать внутри передаваемой как параметр строки, то сделать это можно или «экранировав» одиночный спецсимвол с помощью символа обратного слеша (например, \< ), или используя одинарные кавычки для выделения подстроки целиком.

Перенаправление потока вывода ошибок.


По-умолчанию операторы перенаправления > и >> изменяют передаваемый запускаемой программе файловый дескриптор с номером 1 – который соответствует потоку вывода. Возможно отдельно задать номер изменяемого файлового дескриптора, указав его перед операторами. Потоку вывода ошибок соответствует файловый дескриптор 2: т. е., например, для перенаправления вывода ошибок команды mkdir в /dev/null можно записать:

$ mkdir /etc/my-directory 2> /dev/null

Можно одновременно перенаправить и поток вывода, и поток ошибок:

$ ls -R /var/log/ 2>stderr >stdout

Здесь вывод команды ls -R (-R — рекурсивно по всем подкаталогам) выводится в файл stdout, а сообщения об ошибках – в файл stderr.

Также можно перенаправить стандартный поток ошибок в стандартный поток вывода – операторы перенаправления позволяют указать вместо имени файла номер файлового дескриптора в формате &номер:

$ ls -R /var/log/ 2>&1

При использовании одновременно перенаправления и стандартного потока вывода, и стандартного потока ошибок важен порядок операций:

$ ls -R /var/log/ 2>&1 >/dev/null $ ls -R /var/log/ >/dev/null 2>&1

Первая команда присвоит файловому дескриптору потока ошибок значение файлового дескриптора потока вывода, и далее перенаправит поток вывода в /dev/null. В итоге сообщения об ошибках будут выводится в поток вывода (т. е. при запуске из терминала — на экран), а сам вывод команды будет перенаправляться в /dev/null.

Вторая команда сначала переопределит поток вывода, направив его в /dev/null, а потом присвоит потоку вывода ошибок значение файлового дескриптора потока вывода. В итоге, весь вывод команды – и стандартный, и сообщения об ошибках, - будет направлен в /dev/null.

Одновременное перенаправление в один и тот же файл и потока стандартного вывода, и потока ошибок встречается очень часто — для упрощения записи в ряде командных интерпретаторов, в т.ч. в Bash, есть дополнительный оператор перенаправления &> , переназначающий оба потока вывода сразу:

$ mkdir /etc/my-directory &> /dev/null

Узнать о результате выполнения команды при перенаправлении всего её вывода в устройство /dev/null можно, проанализировав код возврата.
1   2   3   4   5   6   7   8   9

Похожие:

Лабораторная работа №2 iconЛабораторная работа №8 распределенный udp сервер/ udp клиент 38 Лабораторная...
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

Лабораторная работа №2 iconЛабораторная работа №1
Лабораторная работа Выполнение расчетов с использованием программирования в среде Visual Basic for Applications (vba). 8

Лабораторная работа №2 iconЛабораторная работа №1
Лабораторная работа №8. Структурирование таблицы с автоматическим подведением итогов

Лабораторная работа №2 iconЛабораторная работа №1. Изучение основ микроструктурного анализа...
...

Лабораторная работа №2 iconЛабораторная работа №1 (одномерные массивы) 27
Лабораторная работа №6 (статические массивы, знакомство с графическим режимом. Возможно будет изменена) 49

Лабораторная работа №2 iconЛабораторная работа Создание и использование запросов (продолжение)....
Задания на экзамен выполняются студентом в компьютерном классе при наличии конспектов под руководством преподавателя

Лабораторная работа №2 iconЛабораторная работа уважаемые студенты! Сейчас вам предстоит выполнить...
«Бухгалтерский учет и анализ». Она состоит из нескольких частей, каждая из которых относится к разделу 3 «Первичные бухгалтерские...

Лабораторная работа №2 iconЛабораторная работа уважаемые студенты! Сейчас вам предстоит выполнить...
«Бухгалтерский учет и анализ». Она состоит из нескольких частей, каждая из которых относится к разделу 3 «Первичные бухгалтерские...

Лабораторная работа №2 iconЛабораторная работа №1 «Выполнение работы в сети Интернет. Работа с электронной почтой»

Лабораторная работа №2 iconЛабораторная работа №7 Отпуск материалов на производство, прочее...
Лабораторная работа №7 Отпуск материалов на производство, прочее выбытие материалов

Вы можете разместить ссылку на наш сайт:


Все бланки и формы на filling-form.ru




При копировании материала укажите ссылку © 2019
контакты
filling-form.ru

Поиск