定式的循环,已知要进行几次循环。
- 语法格式
for i in con1 con2 con3 ...
do
程序段
done
- 第一次循环,变量$i 内容为con1
- 第二次循环,变量$i 内容为con2
- 第三次循环,变量$i 内容为con3
-
例子1
捉出用的名后并使用id命令检查出用户的标识符和特殊参数
uu=`cut -d ":" -f1 /etc/passwd`
for i in $uu
do
id $uu
done
#执行结果
[root@k8s-node2 ~]# ./idrom.sh
uid=0(root) gid=0(root) 组=0(root)
uid=1(bin) gid=1(bin) 组=1(bin)
uid=2(daemon) gid=2(daemon) 组=2(daemon)
uid=3(adm) gid=4(adm) 组=4(adm)
uid=4(lp) gid=7(lp) 组=7(lp)
uid=5(sync) gid=0(root) 组=0(root)
uid=6(shutdown) gid=0(root) 组=0(root)
uid=7(halt) gid=0(root) 组=0(root)
uid=8(mail) gid=12(mail) 组=12(mail)
uid=11(operator) gid=0(root) 组=0(root)
uid=12(games) gid=100(users) 组=100(users)
uid=14(ftp) gid=50(ftp) 组=50(ftp)
-
例2
使用ping命令 来获取本192.168.1.0/24 网段内的机器是否能够联通
#!/bin/bash
network="192.168.1"
for i in `seq 254`
do
ping -c 1 -w 1 $network.$i &> /dev/null && result=0 || result=1
if [ "$result" == 0 ];then
echo "server $network.$i is UP"
else
echo "server $network.$i is DOWN"
fi
done
- for 的另一种格式写法
#!/bin/bash
read -p "请输入数值" nu
s=0
for (( i=1 ; i<=$nu; i=i+1))
do
s=$(($s+$i))
done
echo "the result of '1+2+3+4...+$nu' ===> $s"
#####
[root@k8s-node2 ~]# ./szdd.sh
请输入数值100
the result of '1+2+3+4...+100' ===> 5050
学习笔记