Перейти к основному содержанию
Рецепты Linux

Main navigation

  • Основы
  • Система
  • Команды
  • Программы
  • Дистро
  • Интерфейсы
  • Устройства
  • Доки
User account menu
  • Войти

Строка навигации

  1. Главная

Команда Linux declare

Автор: admin, 6 декабря, 2023
Команды

В Linux встроенная в оболочку Bash команда declare объявляет переменные и функции в сценариях оболочки, устанавливая их атрибуты и отображая значения.

Примеры использования команды Linux declare

Переменной (резервной переменной) присваивается некоторое значение для последующего использования в коде.

Содержание

  • Синтаксис
  • Параметры
    • Самые необходимые параметры
    • Параметры, устанавливающие атрибуты
  • Использование команды declare в Linux
    • Объявление переменной
    • Назначение целочисленной переменной
    • Назначение массива
    • Преобразование букв строковых переменных в верхний регистр
    • Преобразование букв строковых переменных в нижний регистр
    • Установка переменной, доступной только для чтения
  • Заключение

Синтаксис

$ declare [-aAfFgiIlnrtux] [name[=value] ...]

или

$ declare -p [-aAfFilnrtux] [name ...]

Параметры

Самые необходимые параметры

-f
Ограничить действие или отображение имён и определений функций
-F
Ограничить отображение только имён функций (плюс номер строки и исходный файл при отладке)
-g
Создавать глобальные переменные при использовании в функции оболочки; в противном случае игнорируется
-I
При создании локальная переменная наследует атрибуты и значение переменной с тем же именем в предыдущей области
-p
Отображать атрибуты и значение каждого ИМЕНИ

Параметры, устанавливающие атрибуты

-a
Создать индексированные массивы ИМЁН (если поддерживается)
-A
Создать ассоциативные массивы ИМЁН (если поддерживается)
-i
Создать ИМЕНА с атрибутом integer
-l
Преобразовать значение каждого ИМЕНИ в нижний регистр при назначении
-n
Сделать ИМЯ ссылкой на переменную, названную по её значению
-r
Сделать ИМЕНА доступными только для чтения
-t
Создать ИМЕНА с атрибутом trace
-u
Преобразовать значение каждого ИМЕНИ в верхний регистр при назначении
-x
Сделать экспорт ИМЁН

Использование + вместо - отключает данный атрибут.

Переменные с целочисленным атрибутом имеют арифметическую оценку, выполняемую, когда переменной присваивается значение.

При использовании в функции команда declare делает ИМЕНА локальными, как и команда local. Опция -g подавляет такое поведение.

Все параметры в интерфейсе командной строки (CLI) чувствительны к регистру. При их использовании это всегда следует помнить.

Использование команды declare в Linux

Утилита declare очень полезна в сценариях bash. Её можно использовать для объявления различных типов переменных и функций с разными атрибутами.

Объявление переменной

Для объявления переменной её имя просто добавляется к команде. Переменной можно присвоить любое значение, используя знак равенства =. Присвоенное переменной значение сохраняется в двойных кавычках " ":

$ declare variable_name="value"

В качестве примера создаём переменную с именем var:

oleg@mobile:~:$ declare var
oleg@mobile:~:$ 

Присваиваем значение типу переменной:

oleg@mobile:~:$ var=03
oleg@mobile:~:$ 

Смотрим присвоенное значение переменной, введя следующую команду и нажав Enter:

oleg@mobile:~:$ echo "the value of the variable is $var"
"the value of the variable is 03"
oleg@mobile:~:$ 

Команду echo обычно используют для отображения слов, помещённых в двойные кавычки " " в качестве аргумента. При использовании перед именем знака доллара $ отображается его значение.

Назначение целочисленной переменной

Для объявления целочисленной переменной утилита запускается с опцией -i:

oleg@mobile:~:$ declare -i number
oleg@mobile:~:$ number="7"
oleg@mobile:~:$ echo $number
7
oleg@mobile:~:$ 

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

В качестве значения переменной задаём слово:

oleg@mobile:~:$ declare -i number
oleg@mobile:~:$ number="Year"
oleg@mobile:~:$ echo $number
0
oleg@mobile:~:$ 

В качестве значения переменной задаём дробь:

oleg@mobile:~:$ declare -i number
oleg@mobile:~:$ number="3.14"
bash: 3.14: ошибка синтаксиса: недопустимый математический оператор (неверный маркер «.14»)

Назначение массива

Для установки атрибута переменной в виде массива утилита используется с опцией -a:

$ declare -a array_name[n]="value"

Здесь n — номер элемента массива.

Итак, вводим следующую команду:

oleg@mobile:~:$ declare -a array
oleg@mobile:~:$ 

Для первого элемента массива значение n будет 0.

Вводим следующую команду:

oleg@mobile:~:$ echo ${array[0]}

Объявляем значения элементов массива:

oleg@mobile:~:$ odeclare array[0]="A"re array[0]="A"
odeclare array[1]="B"re array[1]="B"
odeclare array[2]="C"re array[2]="C"
odeclare array[3]="D"re array[3]="D"
odeclare array[4]="E"re array[4]="E"

Смотрим все значения переменной массива, введя следующую команду и нажав кнопку ENTER:

oleg@mobile:~:$ cho ${array[*]}
"A" "B" "C" "D" "E"
oleg@mobile:~:$ 

Были произведены следующие действия:

  • объявление массива и проверка наличия какого-либо присвоенного значения;
  • объявление значения элементов для массива (0-4);
  • отображение значения элементов массива с помощью команды echo.

Преобразование букв строковых переменных в верхний регистр

Можно объявить переменную со строкой, состоящей из заглавных букв, используя вводимую команду с опцией -u:

$ declare -u variable_name="string"

Итак, вводим следующую команду:

oleg@mobile:~:$ declare -u data="linux" 

Смотрим присвоенное значение переменной, введя следующую команду и нажав кнопку ENTER:

oleg@mobile:~:$ oecho "This is a code language of $data"guage of $data"
"This is a code language of "LINUX""
oleg@mobile:~:$ 

Буквы из нижнего регистра были преобразованы в верхний.

Преобразование букв строковых переменных в нижний регистр

При назначении строки можно использовать буквы обоих регистров, запуская команду с опцией -l:

$ declare -l variable_name="string" 

Итак, вводим следующую команду:

oleg@mobile:~:$ declare -l name="LinuX" 

Смотрим присвоенное значение переменной, введя следующую команду и нажав кнопку ENTER:

oleg@mobile:~:$ echo $name
"linux"
oleg@mobile:~:$ 

Значение выходной строки записано строчными буквами.

Установка переменной, доступной только для чтения

Подобное необходимо обычно при нежелании изменять в будущем значение переменной. В этом случае утилита запускается с опцией -r:

$ declare -r variable_name="value" 

Запускаем следующую команду:

oleg@mobile:~:$ declare -r g="9.8"

Теперь пробуем переназначить переменную g, введя следующую команду и нажав кнопку ENTER:

oleg@mobile:~:$ declare -r g="9.9"
bash: declare: g: переменная только для чтения
oleg@mobile:~:$ 

Выходные данные сообщают, что переменная g доступна только для чтения.

Заключение

В этой статье были приведены примеры использования команды declare для объявления переменных с различными параметрами в сценариях Bash. Надеюсь, что многим пользователями Linux эта статья будет весьма полезной.

Последние материалы

  • Файловый менеджер Thunar
    51 minute 37 seconds ago
  • Эмулятор терминала Terminator
    5 days 2 hours ago
  • Приложение scanimage
    1 week 4 days ago
  • Утилита sensors
    2 weeks 1 day ago
  • Сканер Rkhunter
    3 weeks 1 day ago
RSS feed

Secondary menu

  • О проекте

© 2008–2025 Олег Меньшенин mensh@yandex.ru