云计算shell学习之—declare指定变量类型—数组变量—算术运算

写在前面的话:
写博客不是一时兴起,思考了好久,终于动手去做了,自己经常也写一些笔记,我就在想,为什么不把这些笔记写到网上呢,这样就方便了分享和交流,现在在教shell编程,云计算基础,网络基础,思科路由与交换,windows server2008,云平台的搭建与管理,自己也在自学python,openstack,因此,以后会有越来越多的文章,但大多数都是围绕网络—云计算—python这三个 细分专业进行。当然云计算中也有很多分支,其中的基础部分和各种服务搭建,数据库,集群,云部署,大数据一些相关的文章也会写出来。好了,最后一句话 送给 自己:

  • 你可以不完美,但是不可以不努力。
开始正题:declare 命令指定变量的类型
  • 首先这是一个bash的内部命令
  • 其次可以用来声明和修改变量的属性
  • 补充个知识点,它与typeset命令的用法和用途是一样一样的

一下在掌握两个命令,赚到了 , 哈哈!

第一种用法:
使用-r 选项,将变量定义为只读变量,与readonly一样

[root@xieqc shell]# declare  -r  var=1
[1]+  完成                  sleep 10
[root@xieqc shell]# var=2
bash: var: 只读变量
[root@xieqc shell]#  unset  var
bash: unset: var: 无法反设定: 只读 variable
//可以看到变成了只读变量,至于怎么变回来......自己研究研究吧

第二种用法:
使用 -i 选项,将变量定义为整数型变量
什么意思呢,就是说赋予这种类型的变量只能是整数,否则都会被转成整数值
看个栗子:

[root@xieqc shell]# declare  -i  number
[root@xieqc shell]# number=1
[root@xieqc shell]# echo  "this  number  is  $number"
this  number  is  1
[root@xieqc shell]# number=one
[root@xieqc shell]# echo  "this  number  is  $number"
this  number  is  0
[root@xieqc shell]# number=9/2
[root@xieqc shell]# echo  "this  number  is  $number"
this  number  is  4
//很清楚了哈,非数字类型的,变成了0,为什么?因为不是数字,相当于木有赋值

第三种用法:
使用-p选项 ,显示指定变量的属性和值
不确定一个变量的是否被定义的时候可以用这个 选型。

数组变量
  • 一个变量包含多个值,就是数组变量
  • 特别注意的是,数组变量是从0开始计数的
    直接上栗子吧:
[root@xieqc shell]# linux=('debian' 'Redhat' 'Sure' 'Fedora')
//赋值可以这个样子......
[root@xieqc shell]# echo  ${linux[1]}
Redhat
[root@xieqc shell]# echo  ${linux[0]}
debian
//调用的时候,是这个样子,中括号里面写数字,正整数哈,从0开始计数。
[root@xieqc shell]# echo  ${linux[@]}
debian Redhat Sure Fedora
//显示所有内容,@和* 都可以

[root@xieqc shell]# linux[4]=CentOS

[root@xieqc shell]# echo  ${linux[@]}
debian Redhat Sure Fedora CentOS
//最最最关键的是,还可以继续往下赋值,添加数组变量的值!

怎么取消呢???

  • unset 变量名
  • 直接干掉!不解释!

算术运算

  • 没什么解释的,就是算个数,计算器 一样,来看一下怎么用:
    首先来看一下都有哪些运算符号:
  • 求幂运算符 **
[root@xieqc shell]# let  var1=5**2
[root@xieqc shell]# echo  $var1
25
  • 求余运算符 %
[root@xieqc shell]# let  var1=9%2
[root@xieqc shell]# echo  $var1
1
  • 相加赋值运算符+=
[root@xieqc shell]# let  var1+=10
[root@xieqc shell]# echo  $var1
11
  • 相乘赋值运算符:
[root@xieqc shell]# let  var1*=5
[root@xieqc shell]# echo  $var1
55

上面的栗子很清楚了。

  • 逻辑与 && 和逻辑或 || 运算符:
[root@xieqc shell]# echo  $(( 2 && 1 ))
1
[root@xieqc shell]# echo  $(( 2 && 0 ))
0
[root@xieqc shell]# echo  $(( 2 || 1 ))
1
[root@xieqc shell]# echo  $(( 2 || 0 ))
1
[root@xieqc shell]# echo  $(( 0 || 0 ))
0
//解释一下,估计跟我一样,一开始都看蒙了
//&&  和的关系,只要一方为0,输出结果为即为0,毕竟0和谁在一起都是0
// ||    或的关系,只有两个都为0,结果才是0,没有谁离不开谁,或就是最好的解释了哈
好了,这部分内容就到这里了,未完待续…

猜你喜欢

转载自blog.csdn.net/xie_qi_chao/article/details/88561031