shell脚本学习(二)
1.test命令
测试表达式是否成立,当条件成立时,测试返回0,否则为其他数
格式一:
test 条件表达式
格式二:
[ 条件表达式 ]
2.文件测试
[ 操作符 文件目录 ]
常用测试操作符
参数 | 参数作用 |
---|---|
-d | 测试是否为目录Directory |
-e | 测试目录或文件是否存在exist |
-f | 测试是否为文件file |
-r | 测试当前用户是否有权限读取read |
-w | 测试当前用户是否有权限写入write |
-x | 测试当前用户是否有权限执行excute |
3.整数值比较
[ 整数1 操作符 整数2 ]
操作符 | 意义 |
---|---|
-eq | 等于(Equal) |
-ne | 不等于(not equal) |
-gt | 大于(greater than) |
-lt | 小于(less than) |
-le | 小于等于(less equal) |
-ge | 大于等于(greater equal) |
4.字符串比较
格式一:
[ 字符串1 = 字符串2 ]
[ 字符串1 != 字符串2 ]
格式二:
[ -z 字符串]
常用测试操作符
操作符 | 意义 |
---|---|
= | 字符串内容相同 |
!= | 字符串内容不同,!表示相反的意思 |
-z | 字符串的内容为空 |
5.逻辑测试
格式一:
[ 表达式1 ] 操作符 [ 表达式2 ]
格式二:
命令1 操作符 命令2
测试操作符
-a或&&:逻辑与,而且
-o或||:逻辑或,或者
!:逻辑否
6.分支结构
单分支结构
if 条件测试操作
then 命令序列
fi
双分支结构
if 条件测试操作
then 命令序列1
else 命令序列2
fi
多分支结构
if 条件测试操作1
then 命令序列1
elif 条件测试操作2
then 命令序列2
else
命令序列3
fi
7.分享一个关于测试主机是否在线的小案例
vim demo.sh
#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &> /dev/null
if [ $? -eq 0]
then
echo "Host $1 is up."
else
echo "Host $1 is down."
fi
chmod +x demo.sh
./demo.sh 192.168.100.100