Пример A-22. Объектно ориентированная база данных

Пример A-22. Объектно ориентированная база данных

#!/bin/bash

# obj-oriented.sh: Объектно ориентрованный подход к программированию в сценариях.

# Автор: Stephane Chazelas.

person.new() # Очень похоже на объявление класса в C++.

{

local obj_name=$1 name=$2 firstname=$3 birthdate=$4

eval "$obj_name.set_name() {

eval "$obj_name.get_name() {

echo $1

}"

}"

eval "$obj_name.set_firstname() {

eval "$obj_name.get_firstname() {

echo $1

}"

}"

eval "$obj_name.set_birthdate() {

eval "$obj_name.get_birthdate() {

echo $1

}"

eval "$obj_name.show_birthdate() {

echo $(date -d "1/1/1970 0:0:$1 GMT")

}"

eval "$obj_name.get_age() {

echo $(( ($(date +%s) - $1) / 3600 / 24 / 365 ))

}"

}"

$obj_name.set_name $name

$obj_name.set_firstname $firstname

$obj_name.set_birthdate $birthdate

}

echo

person.new self Bozeman Bozo 101272413

# Создается экземпляр класса "person.new" (фактически -- вызов функции с аргументами).

self.get_firstname # Bozo

self.get_name # Bozeman

self.get_age # 28

self.get_birthdate # 101272413

self.show_birthdate # Sat Mar 17 20:13:33 MST 1973

echo

# typeset -f

# чтобы просмотреть перечень созданных функций.

exit 0

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

5.4.2.1. Учебный пример: база данных CDDB/freedb.org

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

5.4.2.1. Учебный пример: база данных CDDB/freedb.org Аудио компакт-диски (CD) содержат последовательность музыкальных записей в цифровом формате, который называется CDDA-WAV. Они были разработаны для проигрывания на очень простых бытовых электронных устройствах за несколько лет до


6.1.6. Учебный пример: база данных Terminfo

Из книги Основы AS/400 автора Солтис Фрэнк

6.1.6. Учебный пример: база данных Terminfo База данных terminfo представляет собой набор описаний видеотерминалов. В каждой записи описываются евсаре-последовательности, которые осуществляют различные операции на экране терминала, такие как вставка или удаление строк, удаление


База данных без имени

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

База данных без имени Много лет назад мы решили интегрировать мощную реляционную базу данных в каждую System/38. Затем эта идея перекочевала и в AS/400. Мы считали, что способность полнофункциональной системы управления базой данных (СУБД) эффективно и надежно обрабатывать


Двуликая база данных

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

Двуликая база данных Говоря о базе данных, мы имеем в виду не просто некоторое место для размещения данных. Мы говорим о системе управления базой данных. СУБД — среда для хранения и выборки данных, включающая определения данных, правила обеспечения их целостности и


Как функционирует база данных

Из книги Справочник по PHP автора

Как функционирует база данных В этом разделе мы рассмотрим различные компоненты базы данных AS/400. Я не ставил здесь перед собой задачу проинструктировать Вас, как использовать эту базу данных. Уже есть целый ряд хороших книг, посвященных внешним аспектам базы данных и


5.4.2.1. Учебный пример: база данных CDDB/freedb.org

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

5.4.2.1. Учебный пример: база данных CDDB/freedb.org Аудио компакт-диски (CD) содержат последовательность музыкальных записей в цифровом формате, который называется CDDA-WAV. Они были разработаны для проигрывания на очень простых бытовых электронных устройствах за несколько лет до


6.1.6. Учебный пример: база данных Terminfo

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

6.1.6. Учебный пример: база данных Terminfo База данных terminfo представляет собой набор описаний видеотерминалов. В каждой записи описываются escape-последовательности, которые осуществляют различные операции на экране терминала, такие как вставка или удаление строк, удаление


20.2.1 Логическая база данных

Из книги Linux программирование в примерах автора Роббинс Арнольд

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


База данных MySQL

Из книги Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil автора Ковязин Алексей Николаевич

База данных MySQL mysql_connectУстанавливает сетевое соединение с базой данных MySQL.Синтаксис:int mysql_connect([string $hostname[:port][:/path/to/socket][, [,string $username [,string $password]]])Функция mysql_connect() устанавливает сетевое соединение с базой данных MySQL, расположенной на хосте $hostname, и возвращает идентификатор


Модель данных <> база данных

Из книги Компьютерные террористы [Новейшие технологии на службе преступного мира] автора Ревяко Татьяна Ивановна

Модель данных <> база данных Тот "мир", который был получен в процессе описания и анализа, является черновиком для структур ваших данных. Считается, что логическая модель должна описывать отношения и наборы. Обычная ошибка (и западня, присущая всем инструментам CASE) слепо


База данных безопасности

Из книги автора

База данных безопасности Когда пользователь соединяется с базой данных Firebird, его пароль сравнивается с зашифрованным паролем в базе данных безопасности. В версии 1.0.x имя базы данных isc4.gdb, в версии 1.5 - security.fdb. Это обычная база данных Firebird, таблица, используемая для


Тестовая база данных

Из книги автора

Тестовая база данных Для тестирования использовался Firebird 1.0 и база данных employee.gdb, входящая в дистрибутив этого сервера баз данных. На этом сервере был создан пользователь "gamer" с паролем "vermin"Для сокращения объема кода, проводящего подключение к базе данных, использовался