if,for,while用法及 练习

If 条件判断
if COMMANDS; then COMMANDS; 2、[ elif COMMANDS; then COMMANDS; ]... 3、[ else COMMANDS; ] 4、fi

单分支:如果if COMMANDS为真,执行then COMMANDS; 忽略2、3,执行4、fi 结束
双分支:如果 1、if COMMANDS; then COMMANDS;不为真,将执行 2、elifCOMMANDS; then COMMANDS; ]... 可以是多条语句,忽略3,执行4、fi 结束
多分支:如果 1和2 判断条件不为真,执行3、[ else COMMANDS; ] 4、fi 结束
语法格式:
单分支

If 判断条件;then
条件代码
fi
双分支

If 判断条件;then
条件代码
else 判断条件;then
条件代码
fi

多分支
If 判断条件;then
条件代码
elif 判断条件;then
条件代码
elif 判断条件;then
条件代码
elif 判断条件;then
以上条件代码不成立执行
fi

for 循环

for: for NAME [in WORDS ... ] ; do COMMANDS; done
for 变量名 in 列表;do
循环体
done
依次将列表中的元素赋给”变量名”,每次赋值后即执行一次
循环体;直到列表中的元素耗尽,循环结束。

实例:

#!/bin/bash
sum=0
for i in {1..100};do
sum $[sum+i]
done
echo $sum

while 循环

while COMMANDS; do COMMANDS; done
Whlie 条件;do
循环体
done
进入循环前,先做一次判断;每一次循环之后再次判断;条件
为”ture”,则执行一次循环;直到条件为”false”终止循环
进入条件:true 永远为ture就一直循环
退出条件:false
实例:
死循环:while true;do sleep 1;echo true;done
监控http服务:
Systemctl stop httpd

#!/bin/bash
sleeptime=30
while true;do
if killall -0 httpd &> /dev/null;then
true
else
systemctl restart httpd
time=date +"%F %T"
echo "At $time httpd is restarted" >> /app/httpd.log

使用while循环当ip访问连接本机三次以上将拒绝访问。
#!/bin/bash
sleeptime=10
while true;do
ss -nt|grep ESTAB|tr -s " " :|cut -d: -f6|sort|uniq -c|while read num ip;do
if [[ "$num" -gt 3 ]];then
iptables -A INPUT -s $ip -j REJECT
fi
done
sleep $sleeptime
done

转载于:https://blog.51cto.com/12601987/2056071

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值