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

Тут можно читать онлайн Мендель Купер - Искусство программирования на языке сценариев командной оболочки - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Искусство программирования на языке сценариев командной оболочки
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    3.7/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

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

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

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

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

Интервал:

Закладка:

Сделать

Локальная сеть

write

Эта утилита позволяет передать текст сообщения на другой терминал (console или xterm). Разрешить или запретить доступ к терминалу можно с помощью команды mesg.

Поскольку команда writeработает в интерактивном режиме, то, как правило, она не употребляется в сценариях.

Mail

mail

Чтение или передача электронной почты.

Этот почтовый клиент командной строки с успехом может использоваться в сценариях.

Пример 12-31. Сценарий, отправляющий себя самого по электронной почте

#!/bin/sh

# self-mailer.sh: Сценарий отправляет себя самого по электронной почте

adr=${1:-`whoami`} # Если пользователь не указан, то -- себе самому.

# Вызов 'self-mailer.sh wiseguy@superdupergenius.com'

#+ приведет к передаче электронного письма по указанному адресу.

# Вызов 'self-mailer.sh' (без аргументов) -- отправит письмо

#+ пользователю, запустившему сценарий, например, bozo@localhost.localdomain.

#

# Дополнительно о конструкции ${parameter:-default},

#+ см. раздел "Подстановка параметров"

#+ в главе "К вопросу о переменных".

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

cat $0 | mail -s "Сценарий \"`basename $0`\" отправил себя сам." "$adr"

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

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

# Поздравляю!

# Этот сценарий запустила какая-то "редиска",

#+ и заставила отправить этот текст к Вам.

# Очевидно кто-то не знает

#+ куда девать свое время.

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

echo "`date`, сценарий \"`basename $0`\" отправлен "$adr"."

exit 0

mailto

Команда mailto, похожа на mail, она также отправляет сообщения по электронной почте. Однако, кроме этого, mailtoпозволяет отправлять MIME (multimedia) сообщения.

vacation

Эта утилита предназначена для автоматической передачи ответов на электронные письма, например для того, чтобы уведомить отправителя о том, что получатель временно отсутствует. Работает совместно с sendmailи не может использоваться для передачи сообщений через коммутируемые линии (по модему).

12.7. Команды управления терминалом

Команды, имеющие отношение к консоли или терминалу

tput

инициализация терминала или выполнение запроса к базе данных терминалов terminfo . С помощью tputможно выполнять различные операции. tput clear-- эквивалентно команде clear. tput reset-- эквивалентно команде reset. tput sgr0-- так же сбрасывет настройки терминал, но без очистки экрана.

bash$ tput longname

xterm terminal emulator (XFree86 4.0 Window System)

Команда tput cup X Yперемещает курсор в координаты (X,Y). Обычно этой команде предшествует clear, очищающая экран.

Обратите внимание: stty предлагает более широкий диапазон возможностей.

infocmp

Cравнение или печать информации о характеристиках терминалов, хранящейся в базе данных terminfo .

bash$ infocmp

# Reconstructed via infocmp from file:

/usr/share/terminfo/r/rxvt

rxvt|rxvt terminal emulator (X Window System),

am, bce, eo, km, mir, msgr, xenl, xon,

colors#8, cols#80, it#8, lines#24, pairs#64,

acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,

bel=^G, blink=\E[5m, bold=\E[1m,

civis=\E[?25l,

clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,

...

reset

Сбрасывает настройки терминала и очищает экран. Как и в случае команды clear, курсор и приглашение к вводу (prompt) выводятся в верхнем левом углу терминала.

clear

Команда clearпросто очищает экран терминала или окно xterm. Курсор и приглашение к вводу (prompt) выводятся в верхнем левом углу терминала. Эта команда может запускаться как из командной строки, так и из сценария. См. Пример 10-25.

script

Эта утилита позволяет сохранять в файле все символы, введенные пользователем c клавиатуры (вывод тоже). Получая, фактически, подробнейший синхронный протокол сессии.

12.8. Команды выполнения математических операций

factor

Разложение целого числа на простые множители.

bash$ factor 27417

27417: 3 13 19 37

bc

Bash не в состоянии выполнять действия над числами с плавающей запятой и не содержит многих важных математических функций. К счастью существует bc.

Универсальная, выполняющая вычисления с произвольной точностью, утилита bcобладает некоторыми возможностями, характерными для языков программирования.

Синтаксис bcнемного напоминает язык C.

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

Ниже приводится простой шаблон работы с утилитой bcв сценарии. Здесь используется прием подстановки команд.

variable=$(echo "OPTIONS; OPERATIONS" | bc)

Пример 12-32. Ежемесячные выплаты по займу

#!/bin/bash

# monthlypmt.sh: Расчет ежемесячных выплат по займу.

# Это измененный вариант пакета "mcalc" (mortgage calculator),

#+ написанного Jeff Schmidt и Mendel Cooper (ваш покорный слуга).

# http://www.ibiblio.org/pub/Linux/apps/financial/mcalc-1.6.tar.gz [15k]

echo

echo "Введите сумму займа, процентную ставку и срок займа,"

echo "для расчета суммы ежемесячных выплат."

bottom=1.0

echo

echo -n "Сумма займа (без запятых -- с точностью до доллара) "

read principal

echo -n "Процентная ставка (процент) " # Если 12%, то нужно вводить "12", а не ".12".

read interest_r

echo -n "Срок займа (месяцев) "

read term

interest_r=$(echo "scale=9; $interest_r/100.0" | bc) # Здесь "scale" -- точность вычислений.

interest_rate=$(echo "scale=9; $interest_r/12 + 1.0" | bc)

top=$(echo "scale=9; $principal*$interest_rate^$term" | bc)

echo; echo "Прошу подождать. Вычисления потребуют некоторого времени."

let "months = $term - 1"

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

for ((x=$months; x > 0; x--))

do

bot=$(echo "scale=9; $interest_rate^$x" | bc)

bottom=$(echo "scale=9; $bottom+$bot" | bc)

# bottom = $(($bottom + $bot"))

done

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

# Rick Boivie предложил более эффективную реализацию

#+ цикла вычислений, который дает выигрыш по времени на 2/3.

# for ((x=1; x <= $months; x++))

# do

# bottom=$(echo "scale=9; $bottom * $interest_rate + 1" | bc)

# done

# А затем нашел еще более эффективную альтернативу,

#+ которая выполняется в 20 раз быстрее !!!

# bottom=`{

# echo "scale=9; bottom=$bottom; interest_rate=$interest_rate"

# for ((x=1; x <= $months; x++))

# do

# echo 'bottom = bottom * interest_rate + 1'

# done

# echo 'bottom'

# } | bc` # Внедрить цикл 'for' в конструкцию подстановки команд.

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

# let "payment = $top/$bottom"

payment=$(echo "scale=2; $top/$bottom" | bc)

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

Интервал:

Закладка:

Сделать


Мендель Купер читать все книги автора по порядку

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




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


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


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x