1. 程式人生 > >shell固定執行緒數量應用方法_2018_lcf

shell固定執行緒數量應用方法_2018_lcf

 這裡以ping網段做為應用示例

#!/bin/bash
#執行緒數
DXC=150
#定義描述符為9的管道
mkfifo tmp
exec 9<>tmp
#預先寫入指定數量的換行符,一個換行符代表一個程序
for ((i=0;i<$DXC;i++))
do
        echo -ne "\n" 1>&9
done

for y in 192.168.{0..50}.{1..254}
do
{
#程序控制
        read -u 9
  {
        ping -c2 -i0.5 -w1 $y &> /dev/null
        if [ $? -eq 0 ];then
                echo "$y  Is OK"
        fi
#程序續用
        echo -ne "\n" 1>&9
  }&
}
done
wait
echo "All done"