Библиотека knigago >> Компьютеры: Языки и системы программирования >> Другие языки и системы программирования >> Искусство программирования на языке сценариев командной оболочки


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 1363, книга: Распространитель
автор: Ричард Матесон

"Распространитель" Ричарда Матесона - это леденящий кровь шедевр ужасов, который долго будет преследовать вашу память. Этот роман, впервые опубликованный в 1959 году, остается одним из самых влиятельных произведений жанра и по сей день. История вращается вокруг Неда Скотта, скромного пригородного домохозяйки, чья жизнь принимает жуткий оборот, когда его кусает таинственное существо. Поначалу Нед не замечает никаких изменений, но вскоре он обнаруживает, что жаждет крови. Эта жажда...

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

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

Жанр:

Другие языки и системы программирования, Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Unix, Системное программирование

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

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

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


К этой книге применимы такие ключевые слова (теги) как: Bash Linux Unix Shell

Читаем онлайн "Искусство программирования на языке сценариев командной оболочки". [Страница - 2]

себя исходные тексты программ, доступные для всеобщего обозрения)


Если выполняется хотя бы одно из вышеперечисленных условий, то вам лучше обратиться к более мощным скриптовым языкам программирования, например Perl, Tcl, Python, Ruby или к высокоуровневым компилирующим языкам -- C, C++ или Java. Но даже в этом случае, создание прототипа приложения на языке shell может существенно облегчить разработку.

Название BASH -- это аббревиатура от "Bourne-Again Shell" и игра слов от, ставшего уже классикой, "Bourne Shell" Стефена Бурна (Stephen Bourne). В последние годы BASH достиг такой популярности, что стал стандартной командной оболочкой de facto для многих разновидностей UNIX. Большинство принципов программирования на BASH одинаково хорошо применимы и в других командных оболочках, таких как Korn Shell (ksh), от которой Bash позаимствовал некоторые особенности[ 2 ], и C Shell и его производных. (Примечательно, что C Shell не рекомендуется к использованию из-за отдельных проблем, отмеченных Томом Кристиансеном (Tom Christiansen) в октябре 1993 года на Usenet post

Далее, в тексте документа вы найдете большое количество примеров скриптов, иллюстрирующих возможности shell. Все примеры -- работающие. Они были протестированы, причем некоторые из них могут пригодиться в повседневной работе. Уважаемый читатель можеть "поиграть" с рабочим кодом скриптов, сохраняя их в файлы, с именами scriptname.sh.[ 3 ] Не забудьте выдать этим файлам право на исполнение (chmod u+rx scriptname), после чего сценарии можно будет запустить на исполнение и проверить результат их работы. Вам следует помнить, что описание некоторых примеров следует после исходного кода этого примера, поэтому, прежде чем запустить сценарий у себя -- ознакомьтесь с его описанием.

Скрипты были написаны автором книги, если не оговаривается иное.


(обратно)

Глава 2. Для начала о Sha-Bang

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

(обратно)

Пример 2-1. cleanup: Сценарий очистки лог-файлов в /var/log

# cleanup

# Для работы сценария требуются права root.


cd /var/log

cat /dev/null > messages

cat /dev/null > wtmp

echo "Лог-файлы очищены."

Здесь нет ничего необычного, это простая последовательность команд, которая может быть набрана в командной строке с консоли или в xterm. Преимущество размещения последовательности команд в скрипте состоит в том, что вам не придется всякий раз набирать эту последовательность вручную. Кроме того, скрипты легко могут быть модифицированы или обобщены для разных применений.

(обратно)

Пример 2-2. cleanup: Расширенная версия предыдущего сценария.

#!/bin/bash

# cleanup, version 2

# Для работы сценария требуются права root.


LOG_DIR=/var/log

ROOT_UID=0 # Только пользователь с $UID 0 имеет привилегии root.

LINES=50 # Количество сохраняемых строк по-умолчанию.

E_XCD=66 # Невозможно сменить каталог?

E_NOTROOT=67 # Признак отсутствия root-привилегий.


if [ "$UID" -ne "$ROOT_UID" ]

then

echo "Для работы сценария требуются права root."

exit $E_NOTROOT

fi


if [ -n "$1" ]

# Проверка наличия аргумента командной строки.

then

lines=$1

else

lines=$LINES # Значение по-умолчанию, если число не задано в командной строке

fi


# Stephane Chazelas предложил следующее,

#+ для проверки корректности аргумента, переданного из командной строки,

#+ правда это достаточно сложно для данного руководства.

#

# E_WRONGARGS=65 # Не числовой аргумент

#

# case "$1" in

# "" ) lines=50;;

# *[!0-9]*) echo "Usage: `basename $0` file-to-cleanup"; exit $E_WRONGARGS;;

# * ) lines=$1;;

# esac

#

#* Конец проверки корректности аргумента


cd $LOG_DIR


if [ `pwd` != "$LOG_DIR" ] # или if [ "$PWD" != "$LOG_DIR" ]

# Не в /var/log?

then

echo "Невозможно перейти в каталог $LOG_DIR."

exit $E_XCD

fi # Проверка каталога перед очисткой лог-файлов.


# более эффективный вариант:

#

# cd /var/log || {

# echo "Невозможно перейти в требуемый каталог." >&2

# exit $E_XCD;

# }


tail -$lines messages > mesg.temp # Сохранить последние строки в лог-файле.

mv mesg.temp messages


# cat /dev/null > messages

#* Необходимость этой команды отпала, поскольку очистка выполняется выше.


cat /dev/null > wtmp # команды ': > wtmp' и '> wtmp' имеют тот же эффект.

echo "Лог-файлы очищены."


exit 0

# Возвращаемое значение 0

#+ указывает на успешное завершение работы сценария.

Если вы не желаете полностью вычищать системные логи, то выше представлена улучшенная версия предыдущего сценария. --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.

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