ΠΠ²Π° ΡΠ°ΠΉΠ»Π° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ ΠΎΠ±ΡΠΈΠΌ ΠΏΠΎΠ»Π΅ΠΌ
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()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' EXIT3.Β ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ Π²Π°ΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡ Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΌΠΎΠ³ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ Π²ΡΠ·Π²Π°ΡΡ Π»ΡΠ±ΡΡ ΠΈΠ· Π½ΠΈΡ Π² ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π·. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠ΅ΡΡΠ°Ρ , ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΡΠ°Π²ΡΡΠ΅ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ»ΡΠΆΠ°ΡΠΈΠ΅ ΠΏΡΠΎΡΡΡΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠ°ΠΌΠΈ:
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_choiceset_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 -Π΅