-->

Linux и UNIX: программирование в shell. Руководство разработчика

На нашем литературном портале можно бесплатно читать книгу Linux и UNIX: программирование в shell. Руководство разработчика, Тейнсли Дэвид-- . Жанр: Прочая компьютерная литература. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
Linux и UNIX: программирование в shell. Руководство разработчика
Название: Linux и UNIX: программирование в shell. Руководство разработчика
Дата добавления: 16 январь 2020
Количество просмотров: 447
Читать онлайн

Linux и UNIX: программирование в shell. Руководство разработчика читать книгу онлайн

Linux и UNIX: программирование в shell. Руководство разработчика - читать бесплатно онлайн , автор Тейнсли Дэвид

Данная книга является практическим руководством по программированию интерпретатора Bourne shell -cтандартного командного интерпретатора в UNIX, полностью совместимого с интерпретатором BASH shell в Linux. Книга предназначена для начинающих и опытных программистов и содержит множество полезных примеров, советов и подсказок. С ее помощью читатель сможет быстро научиться создавать shell–сценарии для реальных задач и ситуаций, возникающих в большинстве систем UNIX и Linux.

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала

1 ... 87 88 89 90 91 92 93 94 95 ... 114 ВПЕРЕД
Перейти на страницу:

echo -e -n "ttReady to get file 'y' or 'q' to quit? [y..q] :"

read ANS

case $ANS in

Y|y);;

q|Q) exit 0;;

*) exit 0 ;;

esac

echo "ftp.."

ftp -i -n $DEST_HOST << FTPIT

user anonymous [email protected]$THIS_HOST

$MODE

get $FILENAME $DIREC/$FILENAME.ftp

quit

FTPIT

if [ -s $DIREC/$FILENAME.ftp ]

then

echo "File ls down"

else

echo "Unable to locate $FILENAME.ftp"

fi

Фактическая конструкция "документ здесь", применяемая при передаче файла с помощью ftp, использует опции ftp -i -n. Эти опции означают "не выводить какие‑либо автоматические запросы регистрации" и "отключение режима интерактивного запроса". Тогда сценарий выполняет регистрацию с помощью команды "user". Паролем является конструкция вида [email protected]_HOST, которая имеет фактическое значение [email protected]

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

Ниже приводится часть сценария ftpauto, который запрашивает название удаленного хоста. Однако теперь для поля DEST_HOST устанавливается значение, заданное по умолчанию, а именно my_favourite_host. Теперь пользователь может в ответ на запрос ввести другое название для удаленного хоста или нажать клавишу [Return]. Тогда значение, заданное по умолчанию, загружается в переменную DEST_HOST.

Обратите внимание, что нет необходимости проверять, ввел ли пользователь значение. Значение, заданное по умолчанию, присваивается переменной dest_host.

echo -n "Enter the host you wish to access :"

read DEST_HOST

: ${DEST_HQST:="my_favourite_host"}

echo "wait.. seeing if $DEST_HOST is out there.."

traceroute $DEST_HOST >$tracelog 2>$1

25.5. Организация доступа к базам данных

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

Одна из систем баз данных 'select into' отключается в том случае, если база данных становится доступной для определенных программных продуктов сторонних производителей. Значит, некоторые базы данных нельзя использовать для ввода произвольных данных или для создания временных таблиц.

Для решения этой проблемы применяется конструкция "документ здесь", С помощью этой конструкции поддерживается связь с системной базой данных, а цикл for применяется для изменения "документа здесь" вместе с названиями баз данных. После установки подключения конструкция "документ здесь" применяется для поддержки команд sql, используемых для задания параметров.

Ниже приводится сценарий, реализующий установку параметров для каждой базы данных:

$ pg set.select

#!/bin/sh

#set.select

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

PATH=$PATH:/sybase/bin:/sybase/install

export PATH

SYBASE="/sybase"; export SYBASE

DSQUERY=ACESRV; export DSQUERY

PASSWORD="prilog"

DATABASES="dwbased tempdb aggs levels reps accounts"

for loop in $DATABASES

do

su Sybase -c '/sybase/bin/isql -Usa -P$PASSWORD' << MAYDAY

use master

go

sp_dboption $LOOP,"select into/bulkcopy/pllsort", true

go

use $LOOP go

checkpoint go

MAYDAY

done

Рассматривая конструкцию "документ здесь", при выполнении вышеуказанной команды интерпретатор shell оценивает приведенный выше код.

use master

go

sp_dboption dwbased,"select into/bulkcopy/pllsort", true

go

use dw_based

go

checkpoint go

Когда интерпретатор shell просматривает завершающее слово mayday, сценарий начинает следующую итерацию для цикла for. При этом из списка выбирается следующая база данных. При выполнении сценария получаются следующие результаты:

$ set.select

Database option 'select into/bulkcopy/pllsort' turned ON for database

'dwbased'.

Run the CHECKPOINT command in the database that was changed.

(return status=0)

Database option 'select into/bulkcopy/pllsort' turned ON for database 'tempdb'.

Run the CHECKPOINT command in the database that was changed, (return status=0)

Database option 'select into/bulkcopy/pllsort' turned ON for database 'aggs'.

Run the CHECKPOINT command in the database that was changed, (return status=0)

25.6. Заключение

В главе содержатся примеры по автоматизации задач с использованием конструкции "документ здесь". Конструкцию "документ здесь" можно применять при решении большого количества задач, особенно при установке подключения к приложениям или выполнении команды ftping. Приведенные сценарии можно выполнять и модифицировать для решения конкретных задач конечного пользователя.

ГЛАВА 26

Утилиты интерпретатора shell

В этой главе рассматриваются следующие темы:

   • создание датируемых имен файлов и временных файлов;

   • сигналы;

   • команда trap и способы перехвата сигналов;

   • команда eval;

   • команда logger.

26.1. Создание регистрационных файлов

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

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

26.1.1. Применение команды date для создания журнальных файлов

Если возникла необходимость создать журнальный файл, желательно сделать его уникальным. Для этого достаточно воспользоваться командой date. Командой date можно манипулировать, а также добавлять ее к имени файла, который станет журнальным файлом.

Для изменения формата отображения данных применяется следующий формат:

date option + %format

С помощью знака плюс (+( можно в различных форматах отображать текущую дату. Ниже дата отображается в формате день, месяц, год.

$ date +%d%m%y

090699

Приведем некоторые наиболее часто применяемые форматы данных.

$ date +%d-%m-%y

09-06-99

$ date +%A%e" "%B" "%Y

Wednesday 9 June 1999

Отображение времени в формате чч: мм: $ date +%R

10:07

$ date +%A" "W "%p Wednesday 10:09 AM

Отображение времени в расширенном формате: $ date +%T

10:29:41

$ date +%A" "%T

Wednesday 10:31:19

1 ... 87 88 89 90 91 92 93 94 95 ... 114 ВПЕРЕД
Перейти на страницу:
Комментариев (0)
название