数学比较运算
演示 | 解释 |
---|---|
-eq | 等于 |
-gt | 大于 |
-lt | 小于 |
-ge | 大于或等于 |
-le | 小于或等于 |
-ne | 不等于 |
#!/bin/bash
NUM1=`echo "1.5*10"|bc|cut -d "." -f1` #shell对小数点并不友好
NUM2=$((2*10))
test $NUM1 -gt $NUM2;echo $?
[root@flag ~]# bash -x x.sh
++ echo '1.5*10'
++ bc
++ cut -d . -f1
+ NUM1=15
+ NUM2=20
+ test 15 -gt 20
+ echo 1
1
文件比较和检查
演示 | 解释 |
---|---|
-d | 检查文件是否存在且为目录(目录) |
-e | 检查文件是否存在(目录或文件,名字对就行) |
-f | 检查文件是否存在且为文件(文件) |
-r | 检查文件是否存在且可读 |
-s | 检查文件是否存在且不为空(用echo为空,第一行是空行,需要dd删除) |
-w | 检查文件是否且可写 |
-x | 检查文件是否存在且可执行 |
-O | 检查文件是否存在并且被当前用户拥有 |
-G | 检查文件是否存在并且默认组为当前用户组 |
file -nt file2 | 检查file1是否比file2新(对比最新修改时间,stat命令可查看) |
file1 -ot file2 | 检查file1是否比file2旧(对比最新修改时间,stat命令可查看) |
-ef(通过i节点判断是否是同一个文件,硬链接)(ls -il查看)
test [选项] 目录文件;echo $? (不建议用root测试)
字符串比较运算
演示 | 解释 |
---|---|
== | 等于 |
!= | 不等于 |
-n | 检查字符串的长度是否大于0(是否不为空) |
-z | 检查字符串的长度是否为0(是否为空) |
赋值运算
= | 赋值运算符(a=10,NAME=666) |
---|
逻辑运算
逻辑与运算 &&
逻辑或运算 ||
逻辑非运算 !
逻辑运算注意事项:
逻辑与 或 运算都需要两个以上条件,逻辑非运算只能一个条件。
口诀: 逻辑与运算 真真为真 真假为假 假假为假
逻辑或运算 真真为真 真假为真 假假为假
逻辑非运算 非假为真 非真为假