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




Программирование на языке сценариев командной оболочки - стр. 293


B1724_value=1000 B1724_powerdissip=.25 B1724_colorcode="коричневый-черный-красный" B1724_loc=24N B1724_inventory=243

B1725_value=10000 B1725_powerdissip=.25 B1725_colorcode="коричневый-черный-оранжевый" B1725_loc=24N B1725_inventory=89

# ============================================================== #

echo

PS3='Введите ноиер: '

echo

select catalog_number in "B1723" "B1724" "B1725" do Inv=${catalog_number}_inventory Val=${catalog_number}_value Pdissip=${catalog_number}_powerdissip Loc=${catalog_number}_loc Ccode=${catalog_number}_colorcode

echo echo "Номер по каталогу $catalog_number:" echo "Имеется в наличии ${!Inv} шт. [${!Val} Ом / ${!Pdissip} Вт]." echo "Находятся в лотке # ${!Loc}." echo "Цветовая маркировка: \"${!Ccode}\"."

break done

echo; echo

# Упражнение: # ---------- # Переделайте этот сценарий так, чтобы он использовал массивы вместо косвенных ссылок. # Какой из вариантов более простой и интуитивный?

# Примечание: # ---------- # Язык командной оболочки не очень удобен для написания приложений, #+ работающих с базами данных. # Для этой цели лучше использовать языки программирования, имеющие #+ развитые средства для работы со структурами данных, #+ такие как C++ или Java (может быть Perl).

exit 0

Пример 34-4. Массивы и другие хитрости для раздачи колоды карт в четыре руки

#!/bin/bash # На старых системах может потребоваться вставить #!/bin/bash2.

# Карты: # раздача в четыре руки.

UNPICKED=0 PICKED=1

DUPE_CARD=99

LOWER_LIMIT=0 UPPER_LIMIT=51 CARDS_IN_SUIT=13 CARDS=52

declare -a Deck declare -a Suits declare -a Cards # Проще и понятнее было бы, имей мы дело # с одним 3-мерным массивом. # Будем надеяться, что в будущем, поддержка многомерных массивов будет введена в Bash.

initialize_Deck () { i=$LOWER_LIMIT until [ "$i" -gt $UPPER_LIMIT ] do Deck[i]=$UNPICKED # Пометить все карты в колоде "Deck", как "невыданная".


Содержание  Назад  Вперед