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



         

Программирование на языке сценариев командной оболочки - стр. 304


echo; echo "Вставьте исходный CD, но *НЕ* монтируйте его." echo "Нажмите ENTER, когда будете готовы. " read ready # Ожидание.

echo; echo "Создается промежуточный файл $OF." echo "Это может занять какое-то время. Пожалуйста подождите."

dd if=$CDROM of=$OF bs=$BLOCKSIZE # Копирование.

echo; echo "Выньте исходный CD." echo "Вставьте чистую болванку CDR." echo "Нажмите ENTER, когда будете готовы. " read ready # Ожидание.

echo "Копируется файл $OF на болванку."

cdrecord -v -isosize speed=$SPEED dev=0,0 $OF # Используется пакет Joerg Schilling -- "cdrecord" . # http://www.fokus.gmd.de/nthp/employees/schilling/cdrecord.html

echo; echo "Копирование завершено."

echo "Желаете удалить промежуточный файл (y/n)? " # Наверняка большой файл получился. read answer

case "$answer" in [yY]) rm -f $OF echo "Файл $OF удален." ;; *) echo "Файл $OF не был удален.";; esac

echo

# Упражнение: # Добавьте в оператор "case" возможность обработки, введенных пользователем, "yes" и "Yes".

exit 0

Пример A-7. Последовательности Коллаца (Collatz)

#!/bin/bash # collatz.sh

# Широко известная последовательность Коллаца (Collatz) (гипотеза Коллаца). # ------------------------------------------- # 1) Принимает из командной строки "начальное" целое число. # 2) ЧИСЛО <--- НАЧАЛЬНОЕ ЗНАЧЕНИЕ # 3) Вывести ЧИСЛО. # 4) Если ЧИСЛО четное, разделить на 2, # 5)+ Если не четное -- умножить на 3 и прибавить 1. # 6) ЧИСЛО <--- РЕЗУЛЬТАТ # 7) Повторить, начиная с п. 3, заданное число раз. # # Теоретически, такая последовательность должна сходиться, #+ не зависимо от величины начального значения, #+ к повторению циклов "4,2,1...", #+ даже после значительных флуктуаций в самом начале.

MAX_ITERATIONS=200 # Для больших начальных значений (>32000), это значение придется увеличить.

h=${1:-$$} # Начальное значение # если из командной строки ничего не задано, то берется $PID,




Содержание  Назад  Вперед