Книга: Искусство программирования на языке сценариев командной оболочки
Пример 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
- Пример установочного скрипта
- Резервное копирование базы данных InterBase
- Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
- Пример из практики
- Резервное копирование многофайловых баз данных
- 1.1. Введение в объектно-ориентированное программирование
- Восстановление из резервных копий многофайловых баз данных
- Владелец базы данных
- ЧАСТЬ IV. База данных и ее объекты.
- Перевод базы данных InterBase 6.x на 3-й диалект
- Типы данных для работы с датой и временем
- Практическая работа 53. Запуск Access. Работа с объектами базы данных