Shell条件测试与条件执行

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小印z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值