9.4. Объявление переменных: declare и typeset
Инструкции declare и typeset являются встроенными инструкциями (они абсолютно идентичны друг другу и являются синонимами) и предназначена для наложения ограничений на переменные. Это очень слабая попытка контроля над типами, которая имеется во многих языках программирования. Инструкция declare появилась в Bash, начиная с версии 2. Кроме того, инструкция typeset может использоваться и в ksh-сценариях.
ключи инструкций declare/typeset
- -r readonly (только для
чтения) -
-
declare -r var1
(declare -r var1 аналогично объявлению readonly var1)
Это грубый эквивалент констант (const) в языке C. Попытка изменения таких переменных завершается сообщением об ошибке.
-
- -i integer
-
-
declare -i number
-
# Сценарий интерпретирует переменную «number» как целое число.
-
number=3
-
echo «number = $number« # number = 3
-
number=three
-
echo «number = $number« # number = 0
-
# Строка «three» интерпретируется как целое число.
Допускается выполнение некоторых арифметических операций над
переменными, объявленными как integer, не прибегая к инструкциям
expr или let.-
n=6/3
-
echo «n = $n« # n = 6/3
-
declare -i n
-
n=6/3
-
echo «n = $n« # n = 2
-
- -a array
-
-
declare -a indices
Переменная indices объявляется массивом.
-
- -f functions
-
-
declare -f
Инструкция declare -f, без аргументов, приводит к выводу списка ранее объявленных функций в сценарии.
-
declare -f function_name
Инструкция declare -f function_name выводит имя функции function_name, если она была объявлена ранее.
-
- -x export
-
-
declare -x var3
Эта инструкция объявляет переменную, как доступную для экспорта.
-
- -x var=$value
-
-
declare -x var3=373
Инструкция declare допускает совмещение объявления и присваивания значения переменной одновременно.
-
Пример 9-20. Объявление переменных с помощью инструкции declare
-
#!/bin/bash
-
func1 ()
-
{
-
echo Это функция.
-
}
-
declare -f # Список функций, объявленных выше.
-
echo
-
declare -i var1 # var1 — целочисленная переменная.
-
var1=2367
-
echo «переменная var1 объявлена как $var1«
-
var1=var1+1 # Допустимая арифметическая операция над целочисленными переменными.
-
echo «переменная var1 увеличена на 1 = $var1.»
-
# Допустимая операция для целочисленных переменных
-
echo «Возможно ли записать дробное число 2367.1 в var1?»
-
var1=2367.1 # Сообщение об ошибке, переменная не изменяется.
-
echo «значение переменной var1 осталось прежним = $var1«
-
echo
-
declare -r var2=13.36 # инструкция ‘declare’ допускает установку свойств переменной
-
#+ и одновременно присваивать значение.
-
echo «var2 declared as $var2« # Допускается ли изменять значение readonly переменных?
-
var2=13.37 # Сообщение об ошибке и завершение работы сценария.
-
echo «значение переменной var2 осталось прежним $var2« # Эта строка никогда не будет выполнена.
-
exit 0 # Сценарий завершит работу выше.
- Страница для печати
- 11286 просмотров