關(guān)于下面腳本中出現(xiàn)的命名管道的知識點芹扭,請自修
#!/bin/bash
# 這里定義變量
# 這里定義函數(shù)
# 下面是定義每次開始的線程數(shù)新症,你可以以自己修改這個數(shù),
# 不可以太多,太多,機器就掛了
num=5
# 下面這段不用動
mkfifo testfifo # 創(chuàng)建命名管道文件
exec 7<>testfifo # 給命名管道起個文件描述符
rm -rf testfifo # 刪除這個命名管道文件矿辽,但是管道依然存在搔扁,可以使用文件描述符 7 進行使用践啄。
for i in $(seq 1 ${num}) # 向這個管道中輸入相應(yīng)數(shù)據(jù)的空行
do
echo >&7 # 每一行就是一次并發(fā)
done
# 在這里寫自己的循環(huán)體, 循環(huán)體可以根據(jù)自己寫代碼進行必要的更改,里面有的是不能變的。
while read LINE
do
read -u7 # 這個不能變
# 下面這段是把每次的循環(huán)體放到后臺硅堆,之后緊接著進行下次的循環(huán)任務(wù)屿储,就實現(xiàn)了并發(fā)
{ # 這個不能變
# 在這里寫自己的代碼
echo $LINE |awk '{print $3}'
sleep 2
# 執(zhí)行的代碼結(jié)束,下面不用動
echo >&7
}& # 這個不能變渐逃,
done < $1
### 循環(huán)體結(jié)束
wait # 這個不能變够掠, 就是等待上面的所有后臺進程結(jié)束
exec 7>&- # 這個不能變,
echo "任務(wù)執(zhí)行完畢"