3.1.1 运算符基础

学习目标

这一节,我们从 基础知识、赋值运算、小结 三个方面来学习。

基础知识

需求

根据我们之前的学习,通过现有的知识内容可以完成一个简单的功能操作,即使通过所谓的脚本参数可以实现一个脚本在多个数据值的情况下实现不同的结果。但是问题是,目前脚本本身还没有实现灵活的机制。
	所谓脚本级别的灵活机制,说的是脚本内部能够实现数据的操作和判断。而数据的操作也是判断过程中必须的一个条件组成部分。所以数据的操作是脚本的一个核心内容。

数据操作

关于shell可以实施的数据操作,按照不同的业务场景主要可以分为如下两个方面:
	运算符 - 数据值之间的操作
		赋值运算
			- 结果值输出
			- 示例: =、*=、/=、%=、+=、-=、<<=、>>=、&=、^=、|=等
		二元运算 
			- 数据值操作
			- 示例: +、-、*、/、%等
		高阶运算
			- 更高一级的数学运算
			- 示例:**、^、++、--、
		其他运算 
			- 其他运算操作
			- 示例:<<、>>等
注意:
	这些所谓的运算符一般很难单独来使用,都需要结合计算表达式来实现相应的效果
表达式 - 数据值在特定场景的运算符操作
		计算表达式
			- 将多个值的运算操作执行起来
			- 示例:bc、let、expr、$(())等
		测试表达式 
			- 判断结果值是否满足需求
			- 示例:test、[]等
		逻辑表达式 
			- 多条件的多场景组合
			- 示例:&&、||、and、or、not、&、|等
		比较表达式 
			- 判断数据之间的适配关系
			- 示例:-f|d|s、-r|x|w、-e、-n、==、!=、>、<、<=、>=等
		三元表达式
			- 多逻辑的简单计算表达式
			- 示例:expr?expr:expr
		集合表达式 
			- 表达式之间的关联关系
			- 示例:expr1 , expr2、 [[ ]]、[ -a|o ]、[ ! ]等

赋值运算

基础知识

所谓的赋值运算,其实指的就是将一个值赋予一个变量名,虽然我们在变量一节中对于该知识点进行了一些基础性的操作,但是赋值运算仍然还有一些其他的表现样式,尤其是关于命令计算相关的。

简单的赋值操作

为变量赋值
[root@localhost ~]# echo $num $string

[root@localhost ~]# num=123 string=abc
[root@localhost ~]# echo $num $string
123 abc
赋值时候定制属性
[root@localhost ~]# declare stringnum=123
[root@localhost ~]# declare string=nihao
[root@localhost ~]# echo $stringnum $string
123 nihao
[root@localhost ~]# declare -i num=654
[root@localhost ~]# declare -i num2=aaa
[root@localhost ~]# echo $num $num2
654 0
获取特定数据
[root@localhost ~]# myuser=$(whoami)
[root@localhost ~]# echo $myuser
root
[root@localhost ~]# kernel_info=$(cat /etc/redhat-release)
[root@localhost ~]# echo $kernel_info
CentOS Linux release 7.9.2009 (Core)

小结