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