for循环:固定有限次数循环,工作中for使用最多。
语法1:
for 变量名 in 变量取值列表
do
指令…
done
学习方法:记住下面的内容
for 男人 in 世界
do
if [ 有房 ] && [ 有车 ] && [ 有钱 ] && [ 有权 ] && [ … ];then
echo “我喜欢”
else
rm –f 男人
done
下面列举几个for循环语句例子:
直接列出变量列表所有元素,打印1、2、3、4、5
[root@bqh-118 scripts]# vim for.sh
#!/bin/sh
for n in 1 2 3 4 5
do
echo $n
done
语法2:
for ((初始值;循环控制条件;变量变化))
do
指令
done
在语法二中需要注意以下几点:
①初始值:在循环开始时,需要给某个变量赋予初始值,如 i=1。
②循环控制条件:用于指定变量循环的次数,如 i<=100,则只要 i 的值小于等于 100,循环就会继续。
③变量变化:每次循环之后,变量该如何变化,如 i=i+1,代表每次循环之后,变量的值都加 1。
语法二和其他语言中的 for 循环类似,也就是事先决定循环次数的固定循环。先举一个简单的例子。
从1加到100总和:
[root@bqh-118 scripts]# vim for.sh #!/bin/sh
#no.1 echo "-----------------------------" for n in `seq 100` do ((sum+=n)) done echo "1...100总和为:" $sum echo "==============================" #no.2 for ((i=1;i<=100;i++)) do ((sum1+=i)) done echo "1...100总和为:" $sum echo "==============================" #no.3 echo "1...100总和为:" $((100*(100+1)/2)) echo "-------------------------------"
下面我们来一个实战例子:
扫描192.168.43.110---120 /24网络里,当前在线用户的ip有哪些:
[root@bqh-118 scripts]# vim scan.sh
#!/bin/sh
# ******************************************************
# Author : aゞ锦衣卫
# Last modified: 2019-05-14 23:37
# Email : 1147076062@qq.com
# blog : https://www.cnblogs.com/su-root
# Filename : scan.sh
# Description : Scanning online IP
# ******************************************************
read -p "请输入您要扫描的IP网段:" IP
echo "正在扫描..."
sleep 1
for i in {110..120}
do
if ping -c 1 -W 1 $IP.$i &>/dev/null;then #-c ping 2次;-W 超时2s
echo -e " 33[32m $IP.$i 33[0m is up"
else
echo -e " 33[31m $IP.$i 33[0m is down"
fi
done
echo "扫描完毕!"
ok!