Shell脚本基础之运算符——数值运算、运算符
Shell脚本的运算符:
- 数值运算与运算符
- 变量测试与内容替换
注意:在Linux的Shell当中,我们的变量类型都默认为字符串型。
实例说明:
[root@root 桌面]# cd ~ [root@root ~]# aa=11 [root@root ~]# bb=22 [root@root ~]# cc=$aa+$bb [root@root ~]# echo $cc 11+22 #在Linux的Shell当中,我们的变量类型都默认为字符串型。
一、数值运算
1、declare声明变量类型
[root@localhost ~]# declare [+/-][选项] 变量名
.
选项:
- - : 给变量设定类型属性
- + : 取消变量的类型属性
- -i : 将变量声明为整数型(integer)
- -x : 将变量声明为环境变量
- -p : 显示指定变量的被声明的类型
- 通过declare命令将变量申明为环境变量,示例说明:
[root@root ~]# aa=11 [root@root ~]# declare -p aa declare -- aa="11" [root@root ~]# export aa [root@root ~]# declare -p aa #通过[declare -p]命令查询一下aa变量的类型 declare -x aa="11" #可以发现aa变量具备了declare -x的属性(即环境变量属性)
上例总结:我们前面讲的将变量声明为环境变量,其实就是给这个变量赋予了declare -x的属性。当然即可以通过export命令,也可以通过declare命令将变量声明为环境变量,效果是一样的。我们只是习惯通过export命令申明环境变量。
2、数值运算
2.1> 方法一:[root@localhost ~]# aa=11
[root@localhost ~]# bb=22
#给变量aa和bb赋值
[root@localhost ~]# declare -i cc=$aa+$bb
#用[declare]命令通过[ -i ]参数,将需要运算的变量cc声明为数值型
示例说明:
[root@root ~]# aa=11 [root@root ~]# bb=22 [root@root ~]# declare -i cc=$aa+$bb [root@root ~]# echo $cc 332.2> 方法2:expr或let数值运算工具
[root@root ~]# aa=11
[root@root ~]# bb=22
#给变量aa和变量bb赋值
[root@root ~]# dd=$(expr $aa + $bb)
#dd的值是aa和bb的和。注意 “ + ”号左右两侧必须有空格;
#这个$()是把[expr $aa + $bb]的结果赋值给dd,而不是将这个字符串,所以命令要用$()括起来
示例说明:
[root@root ~]# dd=$(expr $aa + $bb) [root@root ~]# echo $dd 332.3> 方法3:“$((运算符))”或“$[运算符]”
这种方法是最用的。
[root@localhost ~]# aa=11
[root@localhost ~]# bb=22
[root@localhost ~]# ff=$(( $aa+$bb ))
[root@localhost ~]# gg=$[ $aa+$bb]
3、运算符
关于上表的说明:
- 优先级:数值越高优先级越高,如13的优先级是最高的,13~1的优先级一次减小;
三、变量测试与内容替换
以下表格最主要的作用是:通过显示变量x的值,来判断变量y为有没有值,是为空,还是有值。
以上表格的前6行是给程序用的,后两行是给用户用的
作用是:
- 通过判断x的值来判断y的值是否存在。通过判断x的值来判断y的值是否存在。以第一个为例:如果没有设定y的值,这时x的值就是指定的新值(同理:如果x的值等于新值,证明y这个变量不存在)。如果y变量不存在,x的值为新值;如果y是存在的但有是个空值,这时x的值也为空;如果变量y有值,那么x的值就等于变量y的值。
- 通过[ echo $y ]输出这个值,是给用户看的。我们在写脚本的时候,程序要自动执行,当程序自动执行的时候,有可能要判断上面这个而变了是否存在,这个时候我们就不可能通过人眼的方式去判断,我们得让计算机能够判断,这个时候这个判断是就比较有用了。
- 例子1:测试[ x=${y-新值} ],示例如下:
#当y值不存在时,程序运行如下: [root@localhost ~]# unset y #删除变量y。不管原先系统有没有,我们都将y全部删掉 [root@localhost ~]# x=${y-new} #进行测试 [root@localhost ~]# echo $x new #因为变量y不存在,所以x=new
#当y值存在但是为空值,程序运行如下: [root@localhost ~]# y="" #给变量y赋值为空。通过y="",强制给y设置成空 [root@localhost ~]# x=${y-new} #进行测试 [root@localhost ~]# echo $x
#当x的值存在时,程序运行如下: [root@root ~]# y=old [root@root ~]# x=${y-new} [root@root ~]# echo $x old
- Linux学习日记 —— 10.5.1 Shell基础-Bash变量-数值运算与运算符
- shell基础-bash变量-数值运算与运算符
- Shell基础-Bash变量-数值运算与运算符
- linux——Shell 脚本基础篇(变量类型,变量操作,定义,运算与逻辑关系)
- shell脚本中的数值运算
- shell脚本基础进阶(二)----变量及运算符
- Linux基础-shell脚本知识整理和脚本编写----------变量、运算符、流程控制、函数、计划任务(发送邮件)
- 数值运算shell脚本
- 数值运算shell脚本
- [Shell]Bash变量:数值运算及运算符
- shell基础-数值运算、条件测试、选择分支
- 连载shell(一): 交互式脚本,随日期变化,数值运算
- Shell脚本基础10-基本的数学运算
- LinuxShell脚本编程基础2-变量与数值运算、父shell和子shell
- shell脚本中的数值运算
- Linux入门第五天——shell脚本入门(下)基础语法之调试debug
- 9.1 Shell脚本基础
- shell脚本基础
- Shell脚本基础7-如何在一个文件尾部写入内容
- shell脚本学习笔记(一)—— shell基础及sed