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

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

Жанры

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

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

Шрифт:

autoload

Перенесена в Bash из ksh. Если функция объявлена как autoload, то она будет загружена из внешнего файла в момент первого вызова [ 27 ] . Такой прием помогает экономить системные ресурсы.

Обратите внимание: autoload не является частью ядра Bash. Ее необходимо загрузить с помощью команды enable -f (см. выше).

Таблица 11-1. Идентификация заданий

27

Тот же эффект

можно получить с помощью typeset -fu.

Нотация Описание
%N Номер задания [N]
%S Вызов (командная строка) задания, которая начинается со строки S
%?S Вызов (командная строка) задания, которая содержит строку S
%% "текущее" задание (последнее задание приостановленное на переднем плане или запущенное в фоне)
%+ "текущее" задание (последнее задание приостановленное на переднем плане или запущенное в фоне)
%- Последнее задание
$! Последний фоновый процесс

Глава 12. Внешние команды, программы и утилиты

Благодаря стандартизации набора команд UNIX-систем, сценарии, на языке командной оболочки, могут быть легко перенесены из системы в систему практически без изменений. Мощь сценариев складывется из наборв системных команд и директив командной оболочки с простыми программными конструкциями.

12.1. Базовые команды

Первая команда, с которой сталкиваются новички

ls

Команда вывода "списка" файлов. Многие недооценивают всю мощь этой скромной команды. Например, с ключом – R, рекурсивный обход дерева каталогов, командв ls выводит содержимое каталогов в виде древовидной структуры. Вот еще ряд любопытных ключей (опций) команды ls: – S– - сортировка по размеру файлов, – t– - сортировка по времени последней модификации файла и – i– - выводит список файлов с их inode (см. Пример 12-3).

Пример 12-1. Создание оглавления диска для записи CDR, с помощью команды ls

#!/bin/bash

# burn-cd.sh

# Сценарий, автоматизирующий процесс прожигания CDR.

SPEED=2 # Если ваше "железо" поддерживает более высокую скорость записи -- можете увеличить этот параметр

IMAGEFILE=cdimage.iso

CONTENTSFILE=contents

DEFAULTDIR=/opt #

В этом каталоге находятся файлы, которые будут записаны на CD.

# Каталог должен существовать.

# Используется пакет "cdrecord" от Joerg Schilling.

#

# Если этот сценарий предполагается запускать с правами обычного пользователя,

#+ то необходимо установить флаг suid на cdrecord

#+ (chmod u+s /usr/bin/cdrecord, эта команда должна быть выполнена root-ом).

if [ -z "$1" ]

then

IMAGE_DIRECTORY=$DEFAULTDIR

# Каталог по-умолчанию, если иной каталог не задан из командной строки.

else

IMAGE_DIRECTORY=$1

fi

# Создать файл "table of contents".

ls -lRF $IMAGE_DIRECTORY > $IMAGE_DIRECTORY/$CONTENTSFILE

# Ключ "l" -- "расширенный" формат вывода списка файлов.

# Ключ "R" -- рекурсивный обход дерева каталогов.

# Ключ "F" -- добавляет дополнительные метки к именам файлов (к именам каталогов добавдяет оконечный символ /).

echo "Создано оглавление."

# Создать iso-образ.

mkisofs -r -o $IMAGFILE $IMAGE_DIRECTORY

echo "Создан iso-образ файловой системы ISO9660 ($IMAGEFILE)."

# "Прожигание" CDR.

cdrecord -v -isosize speed=$SPEED dev=0,0 $IMAGEFILE

echo "Запись диска."

echo "Наберитесь терпения, это может потребовать некоторого времени."

exit 0

cat, tac

cat– - это акроним от concatenate, выводит содержимое списка файлов на stdout. Для объединения файлов в один файл может использоваться в комбинации с операциями перенаправления (> или >>).

cat filename cat file.1 file.2 file.3 > file.123

Ключ – n, команды cat, вставляет порядковые номера строк в выходном файле. Ключ – b– - нумерут только не пустые строки. Ключ – v выводит непечатаемые символы в нотации с символом ^. Ключ – s заменяет несколько пустых строк, идущих подряд, одной пустой строкой.

см. также Пример 12-21 and Пример 12-17.

tac– - выводит содержимое файлов в обратном порядке, от последней строки к первой.

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

Тройняшки не по плану. Идеальный генофонд

Лесневская Вероника
Роковые подмены
Любовные романы:
современные любовные романы
6.80
рейтинг книги
Тройняшки не по плану. Идеальный генофонд

Барон играет по своим правилам

Ренгач Евгений
5. Закон сильного
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Барон играет по своим правилам

Завод-3: назад в СССР

Гуров Валерий Александрович
3. Завод
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Завод-3: назад в СССР

Секретарь лорда Демона

Лунёва Мария
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
Секретарь лорда Демона

Отец моего жениха

Салах Алайна
Любовные романы:
современные любовные романы
7.79
рейтинг книги
Отец моего жениха

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

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

Я тебя не отпущу

Коваленко Марья Сергеевна
4. Оголенные чувства
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Я тебя не отпущу

Бастард Императора. Том 7

Орлов Андрей Юрьевич
7. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 7

Девочка из прошлого

Тоцка Тала
3. Айдаровы
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Девочка из прошлого

Вернуть невесту. Ловушка для попаданки 2

Ардова Алиса
2. Вернуть невесту
Любовные романы:
любовно-фантастические романы
7.88
рейтинг книги
Вернуть невесту. Ловушка для попаданки 2

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

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

Хозяйка дома на холме

Скор Элен
1. Хозяйка своей судьбы
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Хозяйка дома на холме

Жена проклятого некроманта

Рахманова Диана
Фантастика:
фэнтези
6.60
рейтинг книги
Жена проклятого некроманта

Имя нам Легион. Том 9

Дорничев Дмитрий
9. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 9