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


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


# ==> Эти комментарии добавлены автором документа.

# PATH=/local/bin:/usr/ucb:/usr/bin:/bin # export PATH # ==> Первые две строки в оригинальном сценарии вероятно излишни.

TMPFILE=/tmp/ftp.$$ # ==> Создан временный файл

SITE=`domainname`.toronto.edu # ==> 'domainname' подобен 'hostname'

usage="Порядок использования: $0 [-h удаленный_сервер] [-d удаленный_каталог]... [-f удаленный_файл:локальный_файл]... \ [-c локальный_каталог] [-m шаблон_имен_файлов] [-v]" ftpflags="-i -n" verbflag= set -f # разрешить подстановку имен файлов (globbing) для опции -m set x `getopt vh:d:c:m:f: $*` if [ $? != 0 ]; then echo $usage exit 65 fi shift trap 'rm -f ${TMPFILE} ; exit' 0 1 2 3 15 echo "user anonymous ${USER-gnu}@${SITE} > ${TMPFILE}" # ==> Добавлены кавычки (рекомендуется). echo binary >> ${TMPFILE} for i in $* # ==> Разбор командной строки. do case $i in -v) verbflag=-v; echo hash >> ${TMPFILE}; shift;; -h) remhost=$2; shift 2;; -d) echo cd $2 >> ${TMPFILE}; if [ x${verbflag} != x ]; then echo pwd >> ${TMPFILE}; fi; shift 2;; -c) echo lcd $2 >> ${TMPFILE}; shift 2;; -m) echo mget "$2" >> ${TMPFILE}; shift 2;; -f) f1=`expr "$2" : "\([^:]*\).*"`; f2=`expr "$2" : "[^:]*:\(.*\)"`; echo get ${f1} ${f2} >> ${TMPFILE}; shift 2;; --) shift; break;; esac done if [ $# -ne 0 ]; then echo $usage exit 65 # ==> В оригинале было "exit 2", изменено в соответствии со стандартами. fi if [ x${verbflag} != x ]; then ftpflags="${ftpflags} -v" fi if [ x${remhost} = x ]; then remhost=prep.ai.mit.edu # ==> Здесь можете указать свой ftp-сервер по-умолчанию. fi echo quit >> ${TMPFILE} # ==> Все команды сохранены во временном файле.

ftp ${ftpflags} ${remhost} < ${TMPFILE} # ==> Теперь обработать пакетный файл.

rm -f ${TMPFILE} # ==> В заключение, удалить временный файл (можно скопировать его в системный журнал).




Начало  Назад  Вперед



Книжный магазин