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

Здесь есть возможность читать онлайн «Мендель Купер - Искусство программирования на языке сценариев командной оболочки» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

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

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Искусство программирования на языке сценариев командной оболочки»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Данное руководство не предполагает наличие у читателя познаний в области программирования на языке сценариев, однако, быстро восполняет этот недостаток, постепенно, шаг за шагом раскрывая мудрость и красоту UNIX. Это руководство может рассматриваться как учебник, предназначенный для самостоятельного изучения или как справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев -- это написание сценариев.

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

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Искусство программирования на языке сценариев командной оболочки», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

# Из "Бестолковые трюки", том II.

MAXPASSCNT=100 # Максимальное количество проходов.

echo -n "$pass_count "

# На первом проходе выведет два пробела,

#+ т.к. $pass_count еще не инициализирована.

let "pass_count += 1"

# Операция инкремента неинициализированной переменной $pass_count

#+ на первом проходе вполне допустима.

# Этот прием срабатывает в Bash и pdksh, но,

#+ при переносе сценария в другие командные оболочки,

#+ он может оказаться неработоспособным или даже опасным.

# Лучшим выходом из положения, будет присвоить переменной $pass_count

#+ значение 0, если она неинициализирована.

while [ "$pass_count" -le $MAXPASSCNT ]

do

. $0 # "Подключение" самого себя.

# ./$0 (истинная рекурсия) в данной ситуации не сработает.

done

# Происходящее здесь фактически не является рекурсией как таковой,

#+ т.к. сценарий как бы "расширяет" себя самого

#+ (добавляя новый блок кода)

#+ на каждом проходе цикла 'while',

#+ командой 'source' в строке 22.

#

# Само собой разумеется, что первая строка (#!), вновь подключенного сценария,

#+ интерпретируется как комментарий, а не как начало нового сценария (sha-bang)

echo

exit 0 # The net effect is counting from 1 to 100.

# Very impressive.

# Упражнение:

# ----------

# Напишите сценарий, который использовал бы этот трюк для чего либо полезного.

exit

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

картинка 69Если сценарий завершается командой exitбез аргументов, то в качестве кода завершения сценария принимается код завершения последней выполненной команды, не считая самой команды exit.

exec

Это встроенная команда интерпретатора shell, заменяет текущий процесс новым процессом, запускаемым командой exec. Обычно, когда командный интерпретатор встречает эту команду, то он порождает дочерний процесс, чтобы исполнить команду. При использовании встроенной команды exec, оболочка не порождает еще один процесс, а заменяет текущий процесс другим. Для сценария это означает его завершение сразу после исполнения команды exec. По этой причине, если вам встретится execв сценарии, то, скорее всего это будет последняя команда в сценарии.

Пример 11-20. Команда exec

#!/bin/bash

exec echo "Завершение \"$0\"." # Это завершение работы сценария.

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

# Следующие ниже строки никогда не будут исполнены

echo "Эта строка никогда не будет выведена на экран."

exit 99 # Сценарий завершит работу не здесь.

# Проверьте код завершения сценария

#+ командой 'echo $?'.

# Он точно не будет равен 99.

Пример 11-21. Сценарий, который запускает себя самого

#!/bin/bash

# self-exec.sh

echo

echo "Эта строка в сценарии единственная, но она продолжает выводиться раз за разом."

echo "PID остался равным $$."

# Демонстрация того, что команда exec не порождает дочерний процесс.

echo "==================== Для завершения - нажмите Ctl-C ===================="

sleep 1

exec $0 # Запуск очередного экземпляра этого же сценария

#+ который замещает предыдущий.

echo "Эта строка никогда не будет выведена!" # Почему?

exit 0

Команда execтак же может использоваться для перенаправления. Так, команда exec заменит стандартное устройство ввода ( stdin ) файлом zzz-file (см. Пример 16-1).

картинка 70Ключ -exec команды find -- это не то же самое, что встроенная команда exec.

shopt

Эта команда позволяет изменять ключи (опции) оболочки на лету (см. Пример 23-1 и Пример 23-2). Ее часто можно встретить в стартовых файлах, но может использоваться и в обычных сценариях. Требует Bash версии 2 или выше.

shopt -s cdspell

# Исправляет незначительные орфографические ошибки в именах каталогов в команде 'cd'

cd /hpme # Oops! Имелось ввиду '/home'.

pwd # /home

# Shell исправил опечатку.

Команды

true

Команда возвращает код завершения -- ноль, или успешное завершение, и ничего больше.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

Представляем Вашему вниманию похожие книги на «Искусство программирования на языке сценариев командной оболочки» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


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

Обсуждение, отзывы о книге «Искусство программирования на языке сценариев командной оболочки» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x