07.Shell选择与循环

1.if选择结构->单分支(只对一种情况做操作)

						     /条件成立 then 命令序列
if 条件测试 -->|                          								fi 结束判断
            			     \条件不成立
判断挂载点目录,若不存在则创建
#!/bin/bash
MOUNT_DIR="/media/cdrom"
if [! -d $MOUNT_DIR]
then
    mkdir -p $MOUNT_DIR
fi

2.if选择结构->双分支(对两种情况都做操作)

            				/条件成立 then 命令序列1
if 条件测试-->|                            								 fi 结束判断
            				\条件不成立 else 命令序列2
检测并判断指定主机是否可ping通
#!/bin/bash
# 发三个包,间隔0.2秒发一次,超时设置三秒,屏蔽输出
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

3.if选择结构->多分支

针对多个条件分别执行不同的操作
if 条件测试1
then 
    命令序列1
elif 条件测试2
then 
    命令序列2
else 命令序列n
fi

4.for循环结构

应用示例————批量添加用户(名称无规律)
# cat uaddfor.sh
#!/bin/bash
ULIST=$(cat /root/users.txt)
for UNAME in $ULIST
do
    useradd $UNAME
    echo "123456" | passwd --stdin $UNAME
done
# tail -5/etc/passwd

5.C语言风格的for循环

通过变量控制,条件成立时循环
步长可控次数
for ((初值;条件;步长控制))
do
    命令序列
done
# cat cfor.sh
#!/bin/bash
for((i=1;i<=5;i+=2))
do
    echo $i
done

6.while循环

            						 /条件成立    do 命令序列
while 条件测试-->|
            						 \条件不成立  done 结束循环
批量添加用户(名称有规律)
# cat uaddwhile.sh
#!/bin/bash
PREFIX="tuser";i=1
while [ $i -le 5 ]
do
    useradd ${PREFIX}$i
    echo "123456" | passwd --stdin ${PREFIX}$i &>/dev/null
    let i++     //递增控制,避免死循环
done

7.util循环结构(直到型循环)

            					   /条件不成立 --> do 命令序列
until 条件测试-->|
            					   \条件成立      --> done结束循环

if+while综合示例(猜价格游戏:价格随机生成,猜中后退出脚本,并给出猜测次数)

#!/bin/bash
PRICE=$[RANDOM%2000+1]
TIMES=0
echo "商品实际价格为1-2000之间,猜猜看是多少?"
while true
do
    read -p "请输入你猜测的价格数目:" X
    let TIMES++
    if [ $X -eq $PRICE ];then
        echo "恭喜你答对了,实际价格是 $PRICE"
        echo "你总共猜测了 $TIMES 次"
        exit 0
    elif [ $X -gt $PRICE ];then
        echo "太高了!"
    else
        echo "太低了!"
    fi
done
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值