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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

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

# то файл /var/log/messages должен быть доступен на чтение этому пользователю.

# #root chmod 644 /var/log/messages

LINES=5

( date; uname -a ) >>logfile

# Время и информация о системе

echo --------------------------------------------------------------------- >>logfile

tail -$LINES /var/log/messages | xargs | fmt -s >>logfile

echo >>logfile

echo >>logfile

exit 0

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

# --------

# Измените сценарий таким образом, чтобы он мог отслеживать изменения в /var/log/messages

#+ с интервалом в 20 минут.

# Подсказка: воспользуйтесь командой "watch".

Пример 12-5. copydir, копирование файлов из текущего каталога в другое место, с помощью xargs

#!/bin/bash

# Копирует все файлы из текущего каталога

# в каталог, указанный в командной строке.

if [ -z "$1" ] # Выход, если каталог назначения не задан.

then

echo "Порядок использования: `basename $0` directory-to-copy-to"

exit 65

fi

ls . | xargs -i -t cp ./{} $1

# Этот сценария является точным эквивалентом

# cp * $1

# если в именах файлов не содержатся пробельные символы.

exit 0

expr

Универсальный обработчик выражений: вычисляет заданное выражение (аргументы должны отделяться пробелами). Выражения могут быть арифметическими, логическими или строковыми.

expr 3 + 5

возвратит 8

expr 5 % 3

возвратит 2

expr 5 \* 3

возвратит 15

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

y=`expr $y + 1`

Операция инкремента переменной, то же самое, что и let y=y+1, или y=$(($y+1)). Пример подстановки арифметических выражений.

z=`expr substr $string $position $length`

Извлекает подстроку длиной $length символов, начиная с позиции $position.

Пример 12-6. Пример работы с expr

#!/bin/bash

# Демонстрация некоторых приемов работы с командой 'expr'

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

echo

# Арифметические операции

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

echo "Арифметические операции"

echo

a=`expr 5 + 3`

echo "5 + 3 = $a"

a=`expr $a + 1`

echo

echo "a + 1 = $a"

echo "(инкремент переменной)"

a=`expr 5 % 3`

# остаток от деления (деление по модулю)

echo

echo "5 mod 3 = $a"

echo

echo

# Логические операции

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

# Возвращает 1 если выражение истинноо, 0 -- если ложно,

#+ в противоположность соглашениям, принятым в Bash.

echo "Логические операции"

echo

x=24

y=25

b=`expr $x = $y` # Сравнение.

echo "b = $b" # 0 ( $x -ne $y )

echo

a=3

b=`expr $a \> 10`

echo 'b=`expr $a \> 10`, поэтому...'

echo "Если a > 10, то b = 0 (ложь)"

echo "b = $b" # 0 ( 3 ! -gt 10 )

echo

b=`expr $a \< 10`

echo "Если a < 10, то b = 1 (истина)"

echo "b = $b" # 1 ( 3 -lt 10 )

echo

# Обратите внимание на необходимость экранирования операторов.

b=`expr $a \<= 3`

echo "Если a <= 3, то b = 1 (истина)"

echo "b = $b" # 1 ( 3 -le 3 )

# Существует еще оператор "\>=" (больше или равно).

echo

echo

# Операции сравнения

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

echo "Операции сравнения"

echo

a=zipper

echo "a is $a"

if [ `expr $a = snap` ]

then

echo "a -- это не zipper"

fi

echo

echo

# Операции со строками

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

echo "Операции со строками"

echo

a=1234zipper43231

echo "Строка над которой производятся операции: \"$a\"."

# length: длина строки

b=`expr length $a`

echo "длина строки \"$a\" равна $b."

# index: позиция первого символа подстроки в строке

b=`expr index $a 23`

echo "Позиция первого символа \"2\" в строке \"$a\" : \"$b\"."

# substr: извлечение подстроки, начиная с заданной позиции, указанной длины

b=`expr substr $a 2 6`

echo "Подстрока в строке \"$a\", начиная с позиции 2,\

и длиной в 6 символов: \"$b\"."

# При выполнении поиска по шаблону, по-умолчанию поиск

#+ начинается с ***начала*** строки.

#

# Использование регулярных выражений

b=`expr match "$a" '[0-9]*'` # Подсчет количества цифр.

echo Количество цифр с начала строки \"$a\" : $b.

b=`expr match "$a" '\([0-9]*\)'` # Обратите внимание на экранирование круглых скобок

# == ==

echo "Цифры, стоящие в начале строки \"$a\" : \"$b\"."

echo

exit 0

картинка 81Вместо оператора matchможно использовать оператор :. Например, команда b=`expr $a : [0-9]*`является точным эквивалентом для b=`expr match $a [0-9]*`в примере, рассмотренном выше.

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

Интервал:

Закладка:

Сделать

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

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


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

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

x