Чтение онлайн

на главную - закладки

Жанры

Искусство программирования на языке сценариев командной оболочки

Купер Мендель

Шрифт:

COMMAND_OUTPUT >

# Перенаправление stdout (вывода) в файл.

# Если файл отсутствовал, то он создется, иначе -- перезаписывается.

ls -lR > dir-tree.list

# Создает файл, содержащий список дерева каталогов.

: > filename

# Операция > усекает файл "filename" до нулевой длины.

# Если до выполнения операции файла не существовало,

# то создается новый файл с нулевой длиной (тот

же эффект дает команда 'touch').

# Символ : выступает здесь в роли местозаполнителя, не выводя ничего.

> filename

# Операция > усекает файл "filename" до нулевой длины.

# Если до выполнения операции файла не существовало,

# то создается новый файл с нулевой длиной (тот же эффект дает команда 'touch').

# (тот же результат, что и выше -- ": >", но этот вариант неработоспособен

# в некоторых командных оболочках.)

COMMAND_OUTPUT >>

# Перенаправление stdout (вывода) в файл.

# Создает новый файл, если он отсутствовал, иначе -- дописывает в конец файла.

# Однострочные команды перенаправления

# (затрагивают только ту строку, в которой они встречаются):

# --------------------------------------------------------------------

1>filename

# Перенаправление вывода (stdout) в файл "filename".

1>>filename

# Перенаправление вывода (stdout) в файл "filename", файл открывается в режиме добавления.

2>filename

# Перенаправление stderr в файл "filename".

2>>filename

# Перенаправление stderr в файл "filename", файл открывается в режиме добавления.

&>filename

# Перенаправление stdout и stderr в файл "filename".

#==============================================================================

# Перенаправление stdout, только для одной строки.

LOGFILE=script.log

echo "Эта строка будет записана в файл \"$LOGFILE\"." 1>$LOGFILE

echo "Эта строка будет добавлена в конец файла \"$LOGFILE\"." 1>>$LOGFILE

echo "Эта строка тоже будет добавлена в конец файла \"$LOGFILE\"." 1>>$LOGFILE

echo "Эта строка будет выведена на экран и не попадет в файл \"$LOGFILE\"."

# После каждой строки, сделанное перенаправление автоматически "сбрасывается".

# Перенаправление stderr, только для одной строки.

ERRORFILE=script.errors

bad_command1 2>$ERRORFILE # Сообщение об ошибке запишется в $ERRORFILE.

bad_command2 2>>$ERRORFILE # Сообщение об ошибке добавится в конец $ERRORFILE.

bad_command3 #

Сообщение об ошибке будет выведено на stderr,

#+ и не попадет в $ERRORFILE.

# После каждой строки, сделанное перенаправление также автоматически "сбрасывается".

#==============================================================================

2>&1

# Перенаправляется stderr на stdout.

# Сообщения об ошибках передаются туда же, куда и стандартный вывод.

i>&j

# Перенаправляется файл с дескриптором i в j.

# Вывод в файл с дескриптором i передается в файл с дескриптором j.

>&j

# Перенаправляется файл с дескриптором 1 (stdout) в файл с дескриптором j.

# Вывод на stdout передается в файл с дескриптором j.

0< FILENAME

< FILENAME

# Ввод из файла.

# Парная команде ">", часто встречается в комбинации с ней.

#

# grep search-word <filename

[j]<>filename

# Файл "filename" открывается на чтение и запись, и связывается с дескриптором "j".

# Если "filename" отсутствует, то он создается.

# Если дескриптор "j" не указан, то, по-умолчанию, бередся дескриптор 0, stdin.

#

# Как одно из применений этого -- запись в конкретную позицию в файле.

echo 1234567890 > File # Записать строку в файл "File".

exec 3<> File # Открыть "File" и связать с дескриптором 3.

read -n 4 <&3 # Прочитать 4 символа.

echo -n . >&3 # Записать символ точки.

exec 3>&- # Закрыть дескриптор 3.

cat File # ==> 1234.67890

# Произвольный доступ, да и только!

|

# Конвейер (канал).

# Универсальное средство для объединения команд в одну цепочку.

# Похоже на ">", но на самом деле -- более обширная.

# Используется для объединения команд, сценариев, файлов и программ в одну цепочку (конвейер).

cat *.txt | sort | uniq > result-file

# Содержимое всех файлов .txt сортируется, удаляются повторяющиеся строки,

# результат сохраняется в файле "result-file".

Операции перенаправления и/или конвейеры могут комбинироваться в одной командной строке.

command < input-file > output-file

<
Поделиться:
Популярные книги

Камень Книга седьмая

Минин Станислав
7. Камень
Фантастика:
фэнтези
боевая фантастика
6.22
рейтинг книги
Камень Книга седьмая

Я сделаю это сама

Кальк Салма
1. Магический XVIII век
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Я сделаю это сама

Кровь на эполетах

Дроздов Анатолий Федорович
3. Штуцер и тесак
Фантастика:
альтернативная история
7.60
рейтинг книги
Кровь на эполетах

Сыночек в награду. Подари мне любовь

Лесневская Вероника
1. Суровые отцы
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Сыночек в награду. Подари мне любовь

Кодекс Крови. Книга ХII

Борзых М.
12. РОС: Кодекс Крови
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Кодекс Крови. Книга ХII

Найди меня Шерхан

Тоцка Тала
3. Ямпольские-Демидовы
Любовные романы:
современные любовные романы
короткие любовные романы
7.70
рейтинг книги
Найди меня Шерхан

Идеальный мир для Лекаря 4

Сапфир Олег
4. Лекарь
Фантастика:
фэнтези
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 4

Релокант. По следам Ушедшего

Ascold Flow
3. Релокант в другой мир
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Релокант. По следам Ушедшего

Мир-о-творец

Ланцов Михаил Алексеевич
8. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Мир-о-творец

Протокол "Наследник"

Лисина Александра
1. Гибрид
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Протокол Наследник

Кодекс Охотника. Книга VII

Винокуров Юрий
7. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
4.75
рейтинг книги
Кодекс Охотника. Книга VII

Попаданка в семье драконов

Свадьбина Любовь
Попаданка в академии драконов
Любовные романы:
любовно-фантастические романы
7.37
рейтинг книги
Попаданка в семье драконов

Новые горизонты

Лисина Александра
5. Гибрид
Фантастика:
попаданцы
технофэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Новые горизонты

Скрываясь в тени

Мазуров Дмитрий
2. Теневой путь
Фантастика:
боевая фантастика
7.84
рейтинг книги
Скрываясь в тени