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

# используя целочисленный множитель, как коэффициент масштабирования

# 3) То же самое, что и во втором упражнении,

# но на этот раз случайные числа должны быть целыми.

<p><strong>9.7. Двойные круглые скобки</strong></p>

Эта конструкция во многом похожа на инструкцию let, внутри ((...)) вычисляются арифметические выражения и возвращается их результат. В простейшем случае, конструкция a=$(( 5 + 3 )) присвоит переменной "a" значение выражения "5 + 3", или 8. Но, кроме того, двойные круглые скобки позволяют работать с переменными в стиле языка C.

<p><strong>Пример 9-28. Работа с переменными в стиле языка C</strong></p>

#!/bin/bash

# Работа с переменными в стиле языка C.

echo

(( a = 23 )) # Присвоение переменной в стиле C, с обоих строн от "=" стоят пробелы.

echo "a (начальное значение) = $a"

(( a++ )) # Пост-инкремент 'a', в стиле C.

echo "a (после a++) = $a"

(( a-- )) # Пост-декремент 'a', в стиле C.

echo "a (после a--) = $a"

(( ++a )) # Пред-инкремент 'a', в стиле C.

echo "a (после ++a) = $a"

(( --a )) # Пред-декремент 'a', в стиле C.

echo "a (после --a) = $a"

echo

(( t = a<45?7:11 )) # Трехместный оператор в стиле языка C.

echo "If a < 45, then t = 7, else t = 11."

echo "t = $t " # Да!

echo

# См. так же описание ((...)) в циклах "for" и "while".

# Эта конструкция доступна в Bash, начиная с версии 2.04.

exit 0

См. так же Пример 10-12.

<p><strong>Глава 10. Циклы и ветвления</strong></p>

Управление ходом исполнения -- один из ключевых моментов структурной организации сценариев на языке командной оболочки. Циклы и преходы являются теми инструментальными средствами, которые обеспечивают управление порядком исполнения команд.

<p><strong>10.1. Циклы</strong></p>

Цикл -- это блок команд, который исполняется многократно до тех пор, пока не будет выполнено условие выхода из цикла.

циклы for

for (in)

Это одна из основных разновидностей циклов. И она значительно отличается от аналога в языке C.

forarg in [list] do команда(ы)... done

На каждом проходе цикла, переменная-аргумент цикла arg последовательно, одно за другим, принимает значения из списка list.

for arg in "$var1" "$var2" "$var3" ... "$varN"

# На первом проходе, $arg = $var1

# На втором проходе, $arg = $var2

# На третьем проходе, $arg = $var3

# ...

# На N-ном проходе, $arg = $varN

# Элементы списка заключены в кавычки для того, чтобы предотвратить возможное разбиение их на отдельные аргументы (слова).

Элементы списка могут включать в себя шаблонные символы.

Есл ключевое слово do находится в одной строке со словом for, то после списка аргументов (перед do) необходимо ставить точку с запятой.

forarg in [list] ; do

<p><strong>Пример 10-1. Простой цикл for</strong></p>

#!/bin/bash

# Список планет.

for planet in Меркурий Венера Земля Марс Юпитер Сатурн Уран Нептун Плутон

do

echo $planet

done

echo

# Если 'список аргументов' заключить в кавычки, то он будет восприниматься как единственный аргумент .

for planet in "Меркурий Венера Земля Марс Юпитер Сатурн Уран Нептун Плутон"

do

echo $planet

done

exit 0

Каждый из элементов [списка] может содержать несколько аргументов. Это бывает полезным при обработке групп параметров. В этом случае, для принудительного разбора каждого из аргументов в списке, необходимо использовать инструкцию set (см. Пример 11-13).

<p><strong>Пример 10-2. Цикл for с двумя параметрами в каждом из элементов списка</strong></p>

#!/bin/bash

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных