Shell脚本之条件语句

Shell脚本之条件语句

我们经常在脚本中使用条件判断,当条件成立时,条件语句会返回特定的值。像test命令和**“[条件表达式]”这种类型是用来判断条件是否成立。当然我们也有if**条件语句。

条件判断

我们经常用**[ 表达式 ]**来判断,如[ 3 -eq 5 ],显然这个表达式是不成立的。再比如[ -d /media/cdrom ],echo $?,返回值为0.说明上述条件判断是成立的。

那么我们常用的条件判断符号有:

  1. -d:判断是否为目录;-e:判断目录或文件是否存在;-f:判断是否为文件;-r:判断当前用户是否有权限读取;-w判断当前用户是否有权写入;-x:判断当前用户是否有权执行。
    在这里插入图片描述
  2. =:判断两边字符串是否相同;!=:判断两边字符串不同,!为取反的意思;-z:为判断字符串是否为空。
    在这里插入图片描述
  3. -eq:表示两数字相等;-ge:表示大于等于;-le:表示小于等于;-gt:表示大于;-lt:表示小于。

if语句的结构

if语句与判断条件结合,可以执行指定好的命令操作。如,条件成立则执行命令1;条件不成立则执行命令2 。

if语句有单分支结构,即满足某个条件就执行某个命令。双分支结构即,满足某个条件则执行命令1,否则执行命令2 。多分支结构是要有多个判断要执行。具体格式为:

1.单分支结构:
if [表达式];then
命令1
fi
在这里插入图片描述
2.双分支结构:
if [表达式];then
命令1
else
命令2
fi

3.多分支结构:
if [表达式1];then
命令1
elif [表达式2];then
命令2

脚本案例

用if双分支来判断主机是否在线。

#!/bin/bash
echo "这是检测主机是否在线的脚本."
contain=$(cat /opt/ipadd.txt)
for test in $contain
 do
ping -c2 -i0.2 -W1 $test &> /dev/nell
if [ $? -eq 0 ]
 then
        echo "$test,主机在线"
 else
        echo "$test,主机不在线"
fi
 done

使用if多分支结构判断数字大小猜数字脚本

n=0
echo "这是一个猜价格的游戏,价格在1~1000的范围内."
jiage=$(expr $RANDOM % 1000)
while true
do
read -p "请输入你猜的价格:" cai
if [ $cai -eq $jiage ]
  then
         let n++
         echo "恭喜你猜对了!它的价格是:$jiage.你一共猜了$n次."
         exit 0
elif [ $cai -gt $jiage ]
 then
        let n++
        echo "你猜的价格高了,猜低一点."
elif [ $cai -lt $jiage ]
 then
        let n++
        echo "你猜的价格低了,猜高一点."
fi
done
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值