郑州网站建设找智巢,wordpress不好用,网站开发一般用什么软件,建设部网站怎么查岗位人员文章目录1. 整数1.1、算数运算符1.1.1 加减乘除运算1.1.2 号关系运算1.1.2.1 (赋值)、(等于)、!(不等于)的使用1.1.2.2 、、、的使用1.2 $((运算式)) 双括号形式 、 $[运算式] 语法 进行运算1.3 -eq关系运算符1.4 、、-eq的区别2 字符串2.1 字符串运算3 逻辑运…
文章目录1. 整数1.1、算数运算符1.1.1 加减乘除运算1.1.2 号关系运算1.1.2.1 (赋值)、(等于)、!(不等于)的使用1.1.2.2 、、、的使用1.2 $((运算式)) 双括号形式 、 $[运算式] 语法 进行运算1.3 -eq关系运算符1.4 、、-eq的区别2 字符串2.1 字符串运算3 逻辑运算符参考在shell中和其他编程语言一样也有多种运算符常用的运算符有算数运算符、关系运算符、逻辑运算符、字符串运算符、文件测试运算符等。但是由于存在整数和字符串处理的语法稍有不同因此我们划分整数和字符串类型
1. 整数
1.1、算数运算符
算数运算符就是我们最常见的常用的主要有(加)、-(减)、*(乘)、/(除)、%(取余)、(赋值)、(等于)、!(不等于)。
下表列出了常用的算术运算符假定变量 a 为 10变量 b 为 20
运算符说明举例加法expr $a $b 结果为 30。-减法expr $a - $b 结果为 -10。*乘法expr $a \* $b 结果为 200。/除法expr $b / $a 结果为 2。%取余expr $b % $a 结果为 0。赋值a$b 将把变量 b 的值赋给 a。相等。用于比较两个数字相同则返回 true。[ $a $b ] 返回 false。!不相等。用于比较两个数字不相同则返回 true。[ $a ! $b ] 返回 true。
注意条件表达式要放在方括号之间并且要有空格例如: [$a$b] 是错误的必须写成 [ $a $b ]。
1.1.1 加减乘除运算
shell是不支持简单的数学运算的这时候我们就可以使用expr命令来实现shell中的简单运算expr 是一款表达式计算工具使用它能完成表达式的求值操作。expr的命令使用方法是比如12要写成expr 1 2expr和计算公式需要写在 中方括号esc下面的那个按钮并且数值和运算符之间要有空格 expr 12是不对的。
不带运算符会当做普通字符串进行输出
echo 12 #先试下正常的运算方式能否得到结果
#打印结果 12带了运算符如果没有空格会当做普通字符串进行输出
echo expr 12 #数值和运算符中间没有空格时
#打印结果 12正例注意乘法运算需要转义字符
echo expr 1 2 #加法
#打印结果 3
echo expr 2 - 1 #减法
#打印结果 1
echo expr 2 \* 3 #乘法必须要使用反斜杠才能实现
#打印结果 6
echo expr 2 * 3 #乘法没有反斜杠时
#打印结果 expr: 语法错误echo expr 6 / 2 #除法
#打印结果 3
echo expr 6 % 4 #取余
#打印结果 21.1.2 号关系运算
什么是关系运算就是比大小、判断是否相等常用在 if 条件判断中
出去加减乘除剩下的符号中有的可以进行简单的关系运算 (单等于)、(等于)、!(不等于) 、、、、
注意if 条件表达式要放在方括号之间并且要有空格例如: [$a$b] 是错误的必须写成 [ $a $b ]。 不建议使用 、 、 等符号进行数字比较因为如果是字符串的话也可以使用 并且表示不同的含义这样如果数字类型变量误定义为字符串类型不容易发现错误建议使用 -eq 语法进行比较。
1.1.2.1 (赋值)、(等于)、!(不等于)的使用
在 if 语法中放在[] 中 示例
#!/bin/bash
a10
b20if [ $a $b ]
thenecho a 等于 b # 不打印
fi
if [ $a ! $b ]
thenecho a 不等于 b #打印
fi1.1.2.2 、、、的使用 小于(需要双括号),如: if (($a $b)) 小于等于(需要双括号),如: if (($a $b)) 大于(需要双括号),如: if (($a $b)) 大于等于(需要双括号),如: if (($a $b))在 if 语法中放在 (( )) 中 要和 中括号区分开来示例
a10
b20if(($a $b))
thenecho a 小于 b # 不打印
fi
双括号结构中变量名引用可以加 $也可以不加 运算符前后可以有空格也可以没有 但是为了方便识别建议加 $ 并且保留空格
1.2 $((运算式)) 双括号形式 、 $[运算式] 语法 进行运算
我们也可以直接使用 - 进行简单的运算但是需要借助 $((运算式)) 双括号形式 和“$[运算式] 语法 详情参见 【Linux】 shell 常用的数据类型(数字、字符串和数组)和运算中的 1.1 计算章节
1.3 -eq关系运算符
这里提到的关系运算符是特殊的通过字母实现的而不是前文的数学符号
下表列出了常用的关系运算符假定变量 a 为 10变量 b 为 20注意使用中括号或双中括号语法
运算符说明举例-eq检测两个数是否相等相等返回 true。[ $a -eq $b ] 返回 false。-ne检测两个数是否不相等不相等返回 true。[ $a -ne $b ] 返回 true。-gt检测左边的数是否大于右边的如果是则返回 true。[ $a -gt $b ] 返回 false。-lt检测左边的数是否小于右边的如果是则返回 true。[ $a -lt $b ] 返回 true。-ge检测左边的数是否大于等于右边的如果是则返回 true。[ $a -ge $b ] 返回 false。-le检测左边的数是否小于等于右边的如果是则返回 true。[ $a -le $b ] 返回 true。
示例
#!/bin/basha10
b20if [ $a -eq $b ]
thenecho $a -eq $b : a 等于 b
elseecho $a -eq $b: a 不等于 b # 打印
fiif [ $a -ne $b ]
thenecho $a -ne $b: a 不等于 b # 打印
elseecho $a -ne $b : a 等于 b
fiif [ $a -gt $b ]
thenecho $a -gt $b: a 大于 b
elseecho $a -gt $b: a 不大于 b # 打印
fiif [ $a -lt $b ]
thenecho $a -lt $b: a 小于 b # 打印
elseecho $a -lt $b: a 不小于 b
fiif [ $a -ge $b ]
thenecho $a -ge $b: a 大于或等于 b
elseecho $a -ge $b: a 小于 b # 打印
fiif [ $a -le $b ]
thenecho $a -le $b: a 小于或等于 b # 打印
elseecho $a -le $b: a 大于 b
fi关系运算符的应用范围只支持数字(确切的说是整数小数暂不确定)不支持字符串因此 建议数字 进行关系运算时采用这种方案这样如果数字类型变量误定义为字符串类型可以及时发现错误例如
#!/bin/bash
a10
babcif [ $a -eq $b ]
thenecho a 不等于 b
fi
由于b变量是字符串执行时报类型不是整型错误
[ubuntu]$ ./a.sh
./a.sh: line 14: [: abc: integer expression expected
1.4 、、-eq的区别
(1)单等号和双等号能用于字符string类型和整型integer的相等判断。 (2)相等关系运算符“-eq”仅能用于整型integer的相等比较。 (3)相等关系运算符“-eq”不能在算数运算表达式“(( ))”中 (4)在 if 条件表达式 “[ ]”中单等号和双等号等价都是相等算数运算符。 (5)在算数运算表达式“(( ))”中单等号是赋值算数运算符双等号为相等算数运算符。
总结在进行相等判断时最通用的方法是使用双等号“”相等判断符避免使用单引号引起歧义。而且数字比较和字符串比较都可以用 号并且建议数字类型时使用 -eq 语法这样可以检测非数字异常。
2 字符串
2.1 字符串运算
参见
3 逻辑运算符
参见 【Linux】shell中的逻辑运算符
参考
Shell 基本运算符 linux shell中的比较符号与特殊符号介绍