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

echo

exit 0

<p><strong>Пример 4-3. Присваивание значений переменным простое и замаскированное</strong></p>

#!/bin/bash

a=23 # Простейший случай

echo $a

b=$a

echo $b

# Теперь немного более сложный вариант (подстановка команд).

a=`echo Hello!` # В переменную 'a' попадает результат работы команды 'echo'

echo $a

# Обратите внимание на восклицательный знак (!) в подстанавливаемой команде

#+ этот вариант не будет работать при наборе в командной строке,

#+ поскольку здесь используется механизм "истории команд" BASH

# Однако, в сценариях, механизм истории команд запрещен.

a=`ls -l` # В переменную 'a' записывается результат работы команды 'ls -l'

echo $a # Кавычки отсутствуют, удаляются лишние пробелы и пустые строки.

echo

echo "$a" # Переменная в кавычках, все пробелы и пустые строки сохраняются.

# (См. главу "Кавычки.")

exit 0

Присваивание переменных с использованием $(...) (более современный метод, по сравнению с обратными кавычками)

# Взято из /etc/rc.d/rc.local

R=$(cat /etc/redhat-release)

arch=$(uname -m)

<p><strong>4.3. Переменные Bash не имеют типа</strong></p>

В отличие от большинства других языков программирования, Bash не производит разделения переменных по "типам". По сути, переменные Bash являются строковыми переменными, но, в зависимости от контекста, Bash допускает целочисленную арифметику с переменными. Определяющим фактором здесь служит содержимое переменных.

<p><strong>Пример 4-4. Целое число или строка?</strong></p>

#!/bin/bash

# int-or-string.sh: Целое число или строка?

a=2334 # Целое число.

let "a += 1"

echo "a = $a " # a = 2335

echo # Все еще целое число.

b=${a/23/BB} # замена "23" на "BB".

# Происходит трансформация числа в строку.

echo "b = $b" # b = BB35

declare -i b # Явное указание типа здесь не поможет.

echo "b = $b" # b = BB35

let "b += 1" # BB35 + 1 =

echo "b = $b" # b = 1

echo

c=BB34

echo "c = $c" # c = BB34

d=${c/BB/23} # замена "BB" на "23".

# Переменная $d становится целочисленной.

echo "d = $d" # d = 2334

let "d += 1" # 2334 + 1 =

echo "d = $d" # d = 2335

echo

# А что происходит с "пустыми" переменными?

e=""

echo "e = $e" # e =

let "e += 1" # Арифметические операции допускают использование "пустых" переменных?

echo "e = $e" # e = 1

echo # "Пустая" переменная становится целочисленной.

# А что происходит с необъявленными переменными?

echo "f = $f" # f =

let "f += 1" # Арифметические операции допустимы?

echo "f = $f" # f = 1

echo # Необъявленная переменная трансформируется в целочисленную.

# Переменные Bash не имеют типов.

exit 0

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

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

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

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

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

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

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

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

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