11. Подробное объяснение команды declare и примеры использования 5 типов

содержание

1.объявить команду и параметры

2. Пример: числовая операция 

3. Пример: тип переменной массива 

4. Пример: переменные среды 

5. Пример: свойство только для чтения

6. Пример: Запрос свойств переменных и отмена свойств переменных


Если нам нужно выполнить числовые операции, мы можем сделать это любым из трех способов:

Используйте declare для объявления типа переменной: поскольку типом по умолчанию для всех переменных является строка, пока мы объявляем переменную как целое число, мы можем выполнять операции. Объявление типа переменной выполняется с помощью команды declare. Команда выглядит следующим образом:

1.объявить команду и параметры

【+/-】【подопция】 Имя переменной

Подопции:

-: Установите атрибут типа для переменной.

+: отменяет атрибут типа переменной.

-a: объявить переменную как массив.

-i: объявить переменную как целое число.

-r: объявить переменную доступной только для чтения. Обратите внимание, что если для переменной задано значение только для чтения, значение переменной нельзя ни изменить, ни удалить, а атрибут только для чтения нельзя отменить даже с помощью +r.

-x: объявить переменную как переменную среды.

-p: Показать объявленный тип указанной переменной.

2. Пример: числовая операция 

[root@localhost ~]# aa=11 
[root@localhost ~]# bb=22 
[root@localhost ~]# declare -i cc=$aa+$bb     #将变量声明为整数型。 
[root@localhost ~]# echo $cc 
33

3. Пример: тип переменной массива 

Так называемый массив представляет собой совокупность элементов одного типа данных, расположенных в определенном порядке, то есть ограниченное количество переменных одного типа именуется именем, а затем они разделяются числами. Имя становится массивом, а число называется индексом. Переменные, из которых состоит массив, называются компонентами массива, также называются элементами массива и иногда называются табличными переменными.

И переменные, и массивы используются для хранения данных, но переменной может быть присвоено только одно значение данных. После повторного присвоения последнее значение перезапишет предыдущее значение. С другой стороны, массивам может быть присвоен набор значений данных одного типа.

пример:

[root@localhost ~]# name[0]="aa"     #数组中第一个变量是“aa” 
[root@localhost ~]# name[1]="bb"     #数组中第二个变量是“bb”
[root@localhost ~]# name[2]="cc"     #数组中第三个变量是“cc” 
[root@localhost ~]# echo $name       #输出数组的内容,如果只写数名,aa那么只会输出第一个下标变量。
[root@localhost ~]# echo ${name[1]}  #下表1输出了bb 
bb
[root@localhost ~]# echo ${name[*]}  #用数组【*】输出数组所有内容
aa bb cc 
#(数组下表是从0开始的,在调用数组时,需要用${数组[下标]}的方式来读取) 

4. Пример: переменные среды 

Мы можем использовать команду declare для объявления переменных как переменных среды, что аналогично команде экспорта.

[root@localhost ~]# declare -x test=123     #用declare命令-x选项将test=123声明为环境变量。 
[root@localhost ~]# env | grep test         #在env中查找是否有test的环境变量。
test=123

Переменные среды можно использовать в оболочке, в которой была создана переменная, а также в любой подоболочке или процессе, производном от этой оболочки, поэтому переменные среды часто называют глобальными переменными. Оболочка, в которой создается переменная среды, называется родительской оболочкой, а если оболочка создается в родительской оболочке, оболочка называется подоболочкой. Когда создается подоболочка, она наследует переменные среды родительской оболочки для собственного использования, поэтому переменные среды могут быть переданы из родительской оболочки в подоболочку. Обратите внимание, однако, что переменные среды могут передаваться только вниз, а не вверх. «Переход от сына, а не от отца»

5. Пример: свойство только для чтения

[root@localhost ~]# declare -r test                  #给test赋予只读属性 
[root@localhost ~]# test=456                         #test变量的值不能修改了 
bash: test: readonly variable 
#bash, 
test,只读变量
[root@localhost ~]# declare +r test                  #试图取消只读属性 
bash: declare: test: readonly variable               #失败.. 
[root@localhost ~]# unset test                       #删除变量
bash: unset: test: cannot unset: readonly variable   #再次失败..... 

Как только атрибут только для чтения установлен для переменной, переменная не может ни изменить значение переменной, ни удалить переменную, а параметр +r нельзя использовать для отмены атрибута только для чтения. Однако, поскольку эта переменная объявлена ​​только в командной строке, она исчезнет, ​​как только вы снова войдете в систему или перезагрузитесь.

6. Пример: Запрос свойств переменных и отмена свойств переменных

Запрос свойств переменных использует параметр -p, а отмена свойств переменных использует параметр +. Команда выглядит следующим образом:

[root@localhost ~]# abc=123             #变量赋值abc=123 
[root@localhost ~]# declare -p abc      #用declare -p查看 
declare -- abc="123" 
[root@localhost ~]# declare -i abc      #declare -i声明变量abc为整数型 
[root@localhost ~]# declare -p abc      #查看 
declare -i abc="123" 
[root@localhost ~]# name[0]=aa          #数组 
[root@localhost ~]# name[1]=bb 
[root@localhost ~]# name[2]=cc 
[root@localhost ~]# declare -p name     #查看数组型 
declare -a name='([0]="aa" [1]="bb" [2]="cc")' 
[root@localhost ~]# declare -p test     #test变量是环境变量和只读变量 
declare -rx test="123" 
[root@localhost ~]# declare +x test     #取消test变量的环境变量属性
[root@localhost ~]# declare -p test     #查看test 
declare -r test="123" 

рекомендация

отblog.csdn.net/weixin_46659843/article/details/123728542
рекомендация