β‘ ΠΎΡΠ΄Π΅Π»ΠΈΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ Π΄Π°Π½Π½ΡΡ ΠΎ Π΄ΠΎΡΠΎΠΆΠΊΠ°Ρ ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ».
Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅ΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ Π²Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π² ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΡ (Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΌ ΡΠΌ. Π² Π³Π»Π°Π²Π΅ 7), ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ±Π΅ΡΠ΅ΠΌ ΡΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ.
ΠΠ°Π»Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ Π² ΡΠ°ΠΉΠ»Ρ.
Π‘Π½Π°ΡΠ°Π»Π° Π²Ρ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΠ΅ Π΄Π»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ° Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ:
β‘ Π½ΠΎΠΌΠ΅Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ° Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅;
β‘ Π½Π°Π·Π²Π°Π½ΠΈΠ΅;
β‘ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΡΠΈΠ»Ρ (ΠΊΠ»Π°ΡΡΠΈΠΊΠ°, ΡΠΎΠΊ, ΠΏΠΎΠΏ, Π΄ΠΆΠ°Π· ΠΈ Ρ.Π΄.);
β‘ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΎΡ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ.
Π Π΄ΠΎΡΠΎΠΆΠΊΠ°Ρ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Ρ ΡΠ°Π½ΠΈΡΡ Π΄Π²Π΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ:
β‘ Π½ΠΎΠΌΠ΅Ρ Π΄ΠΎΡΠΎΠΆΠΊΠΈ;
β‘ Π΅Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅.
ΠΠ»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄Π²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π΄ΠΎΡΠΎΠΆΠΊΠ°Ρ Ρ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½ΠΎΠΌΠ΅Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ° Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ°, ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎ Π² ΡΠ°ΠΉΠ»Π΅ Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ ΠΈ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄ΠΎΡΠΎΠΆΠΊΠΈ Π² ΡΠ°ΠΉΠ»Π΅ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΎ Π΄ΠΎΡΠΎΠΆΠΊΠ°Ρ .
Π ΡΠ°Π±Π». 2.22 ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π° Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π΅ΠΌΡ ΡΠ°ΠΉΠ» Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΎ Π΄ΠΎΡΠΎΠΆΠΊΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π² ΡΠ°Π±Π». 2.23.
Π’Π°Π±Π»ΠΈΡΠ° 2.22
Catalog Title Type Composer CD123 Cool sax Jazz Bix CD234 Classic violin Classical Bach CD345 Hits99 Pop VariousΠ’Π°Π±Π»ΠΈΡΠ° 2.23
Catalog Track No. Title CD123 1 Some jazz CD123 2 More jazz CD234 1 Sonata in D minor CD345 1 DizzyΠΠ²Π° ΡΠ°ΠΉΠ»Π° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ ΠΎΠ±ΡΠΈΠΌ ΠΏΠΎΠ»Π΅ΠΌ Catalog (ΠΠ°ΡΠ°Π»ΠΎΠ³). Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π° ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ ΡΠ°ΠΉΠ»Π° Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠΎΠΊ Π² ΡΠ°ΠΉΠ»Π΅ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΎ Π΄ΠΎΡΠΎΠΆΠΊΠ°Ρ .
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅, ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅ΡΠΈΡΡ, β ΡΠΏΠΎΡΠΎΠ± ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ»Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠΈΡΠΈΠ½Ρ, ΠΎΠ±ΡΡΠ½ΡΠ΅ Π² ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΡ Π±Π°Π·Π°Ρ , β Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ°ΠΌΡΠΉ ΡΠ΄ΠΎΠ±Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ. ΠΡΡΠ³ΠΎΠΉ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ±, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, β Π·Π°ΠΏΡΡΠ°Ρ (Ρ. Π΅. ΡΠ°ΠΉΠ» ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ Π·Π°ΠΏΡΡΡΠΌΠΈ, ΠΈΠ»ΠΈ CSV-ΡΠ°ΠΉΠ»).
Π ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠΈ 2.23 ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ Π·Π°ΠΏΡΡΠ°Π»ΠΈΡΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
β‘ get_return();
β‘ get_confirm();
β‘ set_menu_choice();
β‘ insert_title();
β‘ insert_track();
β‘ add_record_tracks();
β‘ add_records();
β‘ find_cd();
β‘ update_cd();
β‘ count_cds();
β‘ remove_records();
β‘ list_tracks().
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 2.23. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠΎΠ²1. Π‘Π½Π°ΡΠ°Π»Π° Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΊΠ°ΠΊ Π²ΡΠ΅Π³Π΄Π° ΡΡΠΎΠΈΡ ΡΡΡΠΎΠΊΠ°, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ°Ρ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, Π·Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± Π°Π²ΡΠΎΡΡΠΊΠΈΡ ΠΏΡΠ°Π²Π°Ρ :
#!/bin/bash
# ΠΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
# ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠΎΠ².
# Copyright (Π‘) 1996-2007 Wiley Publishing Inc.
# ΠΡΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΠΌΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅;
# Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ/ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π΅Π΅
# Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ GNU General Public License,
# Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠ½Π΄ΠΎΠΌ Free Software Foundation;
# Π»ΠΈΠ±ΠΎ Π²Π΅ΡΡΠΈΠΈ 2 ΡΡΠΎΠΉ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ ΠΈΠ»ΠΈ (ΠΏΠΎ Π²Π°ΡΠ΅ΠΌΡ Π²ΡΠ±ΠΎΡΡ)
# Π»ΡΠ±ΠΎΠΉ Π±ΠΎΠ»Π΅Π΅ ΡΠ²Π΅ΠΆΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ.
# ΠΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ Π² Π½Π°Π΄Π΅ΠΆΠ΄Π΅ Π½Π° Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΡΡΡ,
# Π½ΠΎ WITHOUT ANY WARRANTY, (Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π³Π°ΡΠ°Π½ΡΠΈΠΉ);
# Π΄Π°ΠΆΠ΅ Π±Π΅Π· ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠΉ Π³Π°ΡΠ°Π½ΡΠΈΠΈ MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE (Π³ΠΎΠ΄Π½ΠΎΡΡΠΈ
# Π΅Π΅ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅Π»ΠΈ).
# ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠΌ. Π² GNU General Public License.
# ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠΏΠΈΡ GNU General Public License
# Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ;
# Π΅ΡΠ»ΠΈ Π½Π΅Ρ, ΠΏΠΈΡΠΈΡΠ΅ Π² ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Free Software Foundation,
# Inc. no Π°Π΄ΡΠ΅ΡΡ: 675 Mass Ave, Cambridge, MA 02139, USA.
2. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ. ΠΠ°Π΄Π°ΠΉΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ», ΡΠ°ΠΉΠ» Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΎ Π΄ΠΎΡΠΎΠΆΠΊΠ°Ρ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠΈΡΠ΅ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡ <Ctrl>+<C> Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ», Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅ΡΠ²Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΡ.
menu_choice=""
current cd=""
title_file="title.cdb"
tracks_file="tracks.cdb"
temp_file=/tmp/cdb.$$
trap 'rm -f $temp_file' EXIT
3. ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ Π²Π°ΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡ Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΌΠΎΠ³ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ Π²ΡΠ·Π²Π°ΡΡ Π»ΡΠ±ΡΡ ΠΈΠ· Π½ΠΈΡ Π² ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π·. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠ΅ΡΡΠ°Ρ , ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΡΠ°Π²ΡΡΠ΅ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ»ΡΠΆΠ°ΡΠΈΠ΅ ΠΏΡΠΎΡΡΡΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠ°ΠΌΠΈ:
get_return() (
echo -Π΅ "Press return \Ρ"
read x
return 0
}
get_confirm() (
echo -e "Are you sure? \c"
while true do
read x
case "$x" in
y | yes | Y | Yes | YES )
return 0;;
n | no | N | No | NO )
echo
echo "Cancelled"
return 1;;
*)
echo "Please enter yes or no" ;;
esac
done
}
4. Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π΄ΠΎΡΠ»ΠΈ Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ, ΡΠΎΡΠΌΠΈΡΡΡΡΠ΅ΠΉ ΠΌΠ΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ set_menu_choice. Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΌΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ, Π΄ΠΎΠ±Π°Π²Π»ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠ½ΠΊΡΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ°.
set_menu_choice() {
clear
echo "Options :-"
echo
echo " a) Add new CD"
echo " f) Find CD"
echo " c) Count the CDs and tracks in the catalog"
if [ "$cdcatnum" != "" ]; then
echo " 1) List tracks on $cdtitle"
echo " r) Remove $cdtitle"
echo " u) Update track information for $cdtitle"
fi
echo " q) Quit" echo
echo -e "Please enter choice then press return \c"
read menu_choice
return
}
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° echo -Π΅ Π½Π΅ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ.
5. ΠΠ°Π»Π΅Π΅ ΠΈΠ΄ΡΡ Π΄Π²Π΅ ΠΎΡΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, insert_title ΠΈ insert_track, Π΄Π»Ρ ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π½Π΅Π½Π°Π²ΠΈΠ΄ΡΡ ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠΎΠ΄Π΅ ΡΡΠΈΡ , ΠΎΠ½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ° Π½ΠΈΠΌΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ add_record_track, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ°Ρ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΡΡΠΎΠ±Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ Π²Π²ΠΎΠ΄ Π·Π°ΠΏΡΡΡΡ (ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ. ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠ΅ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ), ΠΈ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π½ΠΎΠΌΠ΅ΡΠ° ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΄ΠΎΡΠΎΠΆΠΊΠΈ Π½Π° 1, ΠΊΠΎΠ³Π΄Π° Π²Π²ΠΎΠ΄ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π½ΠΎΠ²ΠΎΠΉ Π΄ΠΎΡΠΎΠΆΠΊΠ΅.
insert_title() {
echo $* >> $title_file
return
}
insert_track() {
echo $* >> $tracks_file
return
}
add_record_tracks() {
echo "Enter track information for this CD"
echo "When no more tracks enter q"
cdtrack=1
cdttitle=""
while [ "$cdttitle" != "q" ]
do
echo -e "Track $cdtrack, track title? \c"
read tmp
cdttitle=${tmp%%, *}
if [ "$tmp" != "$cdttitle" ]; then
echo "Sorry, no commas allowed"
continue
fi
if [ -n "$cdttitle" ] ; then
if [ "$cdttitle" ! = "q" ]; then
insert_track $cdcatnum, $cdtrack, $cdttitle
fi
else
cdtrack=$((cdtrack-1))
fi
cdtrack=$((cdtrack+1))
done
}
6. Π€ΡΠ½ΠΊΡΠΈΡ add_records ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π²ΠΎΠ΄ΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ΅.
add_records() {
# ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° Π²Π²ΠΎΠ΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
echo -Π΅ "Enter catalog name \Ρ"
read tmp
cdcatnum=${tmp%%, *}
echo -e "Enter title \c"
read tmp
cdtitle=${tmp%%, *}
echo -e "Enter type \c"
read tmp
cdtype=${tmp%%, *}
echo -e "Enter artist/composer \c"
read tmp
cdac=${tmp%%, *}
# ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, Ρ ΠΎΡΠ΅Ρ Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²Π΅ΡΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
echo About to add new entry
echo "$cdcatnum $cdtitle $cdtype $cdac"
# ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π°.
# Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ
if get_confirm ; then