declare命令

时间:2021-11-04 09:11:45

还是围绕以下几个问题进行学习;

1.declare是什么?

2.问什么要用declare?

3.怎样使用declare?

1.declare是什么?

  ♦declare应用的很多,向我们各种语言都会有声明,只是有的不用declare来声明,想orcl中语句块的写法就用的是declare来声明,实际上就是我要用你这个变量我必须知道你是什么类型?我才能用你,不然或许定义的时候没有报错,但是最后的结果却不是你想要的。

  ♦declare命令用于声明和显示已存在的shell变量。当不提供变量名参数时显示所有shell变量。declare命令若不带任何参数选项,则会显示所有shell变量及其值。declare的功能与typeset命令的功能是相同的。

2.问什么要用declare?

  ♦因为我们想达到某种结果就需要对变量进行一些类型或者其他的声明,这样shell才能识别出来他是什么,然后使用这个类型的特殊算法输出自己想要的东西。

3.怎样使用declare?

功能介绍:声明变量的属性,如果使用declare,后面没有任何参数,那么bash就会主动将所有变量名与内容都调出来,just as set.

语 法:

declare(选项)(参数)

参数说明:

-a :将后面的variable定义为数组
-i :将后面的variavle定义为整数数字
-x :用法与export一样,就是将后面的variable变成环境变量
-r :将一个variable的亦是设置成只读,读变量不可更改内容,也不能unset

eg: 
1、将变量sum对200+400求和 

♦1.1.不声明:

1、将变量sum对200+400求和
[root@linux ~]#sum=200+400
[root@linux ~]#echo $sum 200+400——–此处并没有像我们想像中那样会得到结果600,而是 200+400,这是由于它是文字类型的变量属性

♦1.2.声明

[root@linux ~]#declare -i sum=200+400
[root@linux ~]#echo $sum
600————明白了吧

2、将sum变成环境变量 

[root@linux ~]#declare -x sum 

3、让sum变成只读属性,不可更改 

[root@linux ~]#declare -r sum
[root@linux ~]#sum=apple
-bash: sum: readonly variable
[root@linux ~]#unset sum
-bash: unset: sum: cannot unset: readonly variable

在这里要特别说明一下:声明为只读变量之后,不能修改该变量的属性,也不能删除该变量,所以,在声明变量的时候,应该慎用,避免有去无回。另外,你在命令行中敲readonly,你会发现有很多只读变量,当然这些变量也是不能够被修改或删除的。