51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

shell for 循环 (并发循环)并行

shell 编程 for 循环

for循环
语法格式:
for 变量 in [取值列表] 数字 字符串 变量 序列 命令
do
    命令集合
done 

#!/bin/bash
for i in a b c
do
   echo $i
done

可以直接在 终端执行

[root@web00 day04]# for i in `seq 10`;do echo $i;done

shell命令行执行for循环:
[root@web00 day04]# for i in `seq 10`;do useradd baimei$i;done

[root@web00 day04]# for i in `seq 10`;do userdel -r baimei$i;done

另外一种:

for((x=1;x<9;x++))
do 
	a=$[$a+$x]	
echo $x
done

for 变种1 :引起来为一个整体,为一个值输出

#!/bin/bash
for i in "a b" c
do
   echo $i
done

for 变种2 : 序列

#!/bin/bash
for i in {1..5}
do
   echo $i
done

2 for 并发 循环 并行

场景,我们在 ping 局域网内的ip 的时候, 如果有上百台机器,如果我们不用并发,一台一台的等待,是非常耗时的。这个时候我们可以 用并发

并发简单, 就是 要加上 { }&

例如:

#!/bin/bash
for i in {1..254}
do
  {
   ip=10.0.0.$i
   ping -c5 -W2  $ip &>/dev/null
   if [ $? -eq 0 ];then
      echo "$ip 在线"
   fi  
   }&
done
wait
echo "在线取IP完成...."

注意 }& 之间没有 空格

3 for 循环 读取文件,默认是按照空格循环

例如, 有文件 : baimei.txt

#!/bin/bash
for i in `cat baimeidashu.txt`
do 
echo $i
done

运行结果:

shell for in循环

shell for in 数组

shell for循环执行命令
shell for in
shellfor循环两个变量
shell for i in
shell for mew
shell for 数组
shell for in 变量

欢迎来撩 :shell 编程从0到1

赞(1)
未经允许不得转载:工具盒子 » shell for 循环 (并发循环)并行