一、Shell数学运算
1.Shell常见的算术运算符号
序号 | 算术运算符号 | 意义 |
---|---|---|
1 | +、-、*、/、% | 加、减、乘、除、取余 |
2 | ** | 幂运算 |
3 | ++、-- | 自增或自减 |
4 | &&、!、(两条竖线) | 与、或、非 |
5 | ==、!= | 相等、不相等,==也可写成= |
6 | =、+=、-=、*=、/=、%= | 赋值运算符,a+=1相等于a=a+1 |
2.Shell常用算术运算命令
序号 | 算术运算命令 | 意义 |
---|---|---|
1 | (())、let、$[] | 用于整数运算 |
2 | expr | 可用于整数运算,还有其他功能 |
3 | awk、bc | 可用于整数运算,也可用于小数运算 |
3.实例测试:
二、Shell条件测试
1.条件测试常用的语法
序号 | 条件测试语 | 意义 |
---|---|---|
1 | test <测试表达式> | 这是利用test命令进行条件测试表达式的方法,test命令和“<测试表达式>”之间至少有一个空格。 |
2 | [ <测试表达式> ] | [ ]的边界和内容之间至少有一个空格。 |
2.test条件测试
常用文件类型、文件权限、文件比较、整数比较、字符串判断和逻辑判断。
序号 | 参数 | 意义 |
---|---|---|
1 | -e | 判断文件(普通文件或目录文件)是否存在 |
2 | -f | 判断普通文件是否存在 |
3 | -d | 判断目录文件是否存在 |
4 | -r | 判断文件是否有读权限 |
5 | -w | 判断文件是否有写权限 |
6 | -x | 判断文件是否有执行权限 |
7 | -nt | test file1 -nt file2,判断file1是否比file2新 |
8 | -ot | test file1 -ot file2,判断file1是否比file2旧 |
9 | -ef | test file1 -ef file2,判断file1和file2是否同一文件 |
10 | -eq | 判断两个整数是否相等 |
11 | -ne | 判断两个整数是否不相等 |
12 | -gt | test n1 -gt n2,判断整数1是否大于整数2 |
13 | -lt | test n1 -lt n2,判断整数1是否小于整数2 |
14 | -ge | test n1 -ge n2,判断整数1是否大于等于整数2 |
15 | -le | test n1 -le n2,判断整数1是否小于等于整数2 |
16 | -z | 判断字符串是否为0?若字符串为空字符串,则为真,否则反 |
17 | -n | 判断字符串是否为非0?若字符串为非空字符串,则为真,否则反 |
18 | == | 判断两个字符串是否相等 |
19 | != | 判断两个字符串是否不相等 |
20 | &&或-a | 逻辑与,两端都为真,则为真 |
21 | (两条竖线)或-o | 逻辑或,两端其中一端为真,则为真 |
22 | ! | 逻辑非,取反 |
3.中括号[ ]的条件测试
在脚本中经常进行条件测试,用的最多的是中括号[ ],功能与test一样,中括号与内容两边必须有空格,在条件测试中使用变量必须添加双引号,例如:[ -n "$str" ]