shell for 循环简单用法

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.$i33[0m is up"
else
        echo -e "33[31m $IP.$i33[0m is down"
fi
done
echo "扫描完毕!"

ok!

原文地址:https://www.cnblogs.com/su-root/p/10865140.html