目录
Test语句
Shell进行条件判断的两种方式
Test 【操作符选项】 表达式
【操作符选项 表达式】
Boole数 TRUE false
条件判断正确就是真(true)
条件判断为错误是假(false)
返回码 真-->0 假-->非0
文件测试操作符
-e 测试指定的文件或者目录是否存在
-f 测试指定的对象是否为文件;指定的文件是否存在
[ -f /opt/abc.txt ]
-d 测试指定的对象是否为文件;指定的文件是否存在
-r 测试当前用户是否有读的权限
-w 测试当前用户是否有写权限
-x 测试当前用户是否有执行权限
-L 测试文件是否为符号链接(软链接文件)
ls
-rwxrwxrwx root wheel
整数值得比较:
操作符 | 意义 | 符号表示 |
-eq | 等于 | == |
-qt | 大于 | \> |
-lt | 小于 | \< |
-ge | 大于等于 | >= |
-le | 小于等于 | <= |
-ne | 不等于 | != |
【整数变量1 操作符 整数变量2】
字符串比较:
【字符串1 = 字符串2】或者【字符串1 == 字符串2】
【字符串1 != 字符串2】
【-z“字符串”】 -z:判断字符串是否为空,或者指定的变量是否为空值
【-n“字符串”】 -n:判断字符串是否存在
#在进行判断的时候,尤其是有变量的时候,用双“”括起来
浮点数的运算:
方法一:使用bc可以进行小数点的运算
方法二:awk`BEGIN{print }`
逻辑测试
-a && 且 前后条件都要成立
-o || 或 只需前后条件中有一个成立
【 表达式1 】&&【 表达式2 】
【 表达式1 】||【 表达式2 】
Demo:
三元运算符
Java和c
条件表达式?A:B
当条件表达式为真时,取A值:当条件表达式为假时,取B值
Shell
[ 表达式 ] && a || b
[ 表达式 ] || b
单分支:
if[ 表达式 ];then
....
Fi
上面if语句和[ 表达式 ] && a 表达效果一样
双分支:
if[ 表达式 ];then
....
else
....
Fi
上面if语句和[ 表达式 ] && a || b表达效果一样
多分支:
Demo:写一个ping的脚本,测试一台主机是否存活
用if语句写:
输出的结果如下:
查看磁盘,并且筛选
先用grep过滤信息,然后再用awd两次提取
Demo:判断磁盘使用率:
用什么办法可以判断端口是否存在监听
思路:
具体操作:
case语句
Case语句是并行判断的(处理速度快)
Demo:用case语句完成下面操作
方法一:
方法二: