1. 条件测试
语法格式:
test 判断语句
或者:
[ 判断语句 ]
(1)关于文件属性的测试
# file 指任意一个文件
[ -e file ]
#文件
存在
则为真
[ -f file ]
#文件
存在且为常规文件
为真
[ -d file ]
#文件
存在且是一个目录
为真
[ -s file ]
#文件
存在且不为空
为真
(2)关于字符串测试操作符
[ -z <字符串> ]
#如果字符串
为空
则为真
[ -n <字符串> ]
#如果字符串
不为空
则为真
[ <字符串1> = <字符串2> ]
#串1和串2
相同
为真
[ <字符串1> != <字符串2> ]
#串1和串2
不相同
为真
(3)关于算术测试的操作符
[ <数字1> -eq <数字2> ]
#数字1和数字2
相等
则为真
[ <数字1> -ne <数字2> ]
#数字1和数字2
不相等
则为真
[ <数字1> -le <数字2> ]
#数字1
<=
数字2则为真
less than or equal(小于或等于)
[ <数字1> -ge <数字2> ]
#数字1
>=
数字2则为真
greater than or equal(大于或等于)
[ <数字1> -lt <数字2> ]
#数字1
<
数字2则为真
less than(小于)
[ <数字1> -gt <数字2> ]
#数字1
>
数字2则为真
greater than(大于)
2. if结构的语法格式
if 判断条件; then
if内语句
else
else内语句
fi
3. 条件执行
命令1 && 命令2 #命令1执行成功(状态码0)才执行命令2
命令1 || 命令2 #命令1执行失败(状态码不为0)才执行命令2
! 表达式 #测试表达式是否为真或假
4. case语句
实例1:
#根据传入参数执行相应函数
case "$1" in
start)
start #匹配到start时候执行的语句
;;
stop)
stop #匹配到stop时候执行的语句
;;
restart)
restart #匹配到restart时候执行的语句
;;
*) #匹配其他情况
echo "Usage:$0 {start|stop|restart}"
exit 1
;;
esac
实例2:
#!/bin/bash
#获取当前的星期
NOW=$(date +%a)
case $NOW in
Mon)
echo "Full backup"
;;
Tue | Wed | Thu | Fri)
echo "Partial backup"
;;
Sat | Sun)
echo "No backup"
;;
*)
echo "nothing to do"
;;
esac