国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Linux Shell > 正文

Shell腳本模擬多線程功能分享

2020-07-27 19:12:14
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

#!/bin/bash
function pinghost {
ping $1 -c 1 -w 10 |grep rtt|cut -d “/” -f6
}
tmp_fifofile=”/tmp/$.fifo”   # 腳本運行的當前進程ID號作為文件名
mkfifo $tmp_fifofile         # 新建一個隨機fifo管道文件
exec 6<>$tmp_fifofile         # 定義文件描述符6指向這個fifo管道文件
rm $tmp_fifofile
thread=10
for ((i=0;i<$thread;i++));do   # for循環 往 fifo管道文件中寫入10個空行
echo
done >&6
while read domain
do
read -u6                  # 從文件描述符6中讀取行(實際指向fifo管道)
{
pinghost ${domain};      # 執行pinghost函數
echo >&6                      # 再次往fifo管道文件中寫入一個空行。
}&                                  # 放到后臺執行
done</home/miotour/ip.txt
wait                          #因為之前的進程都是后臺執行,因此要有wait來等待所有的進程都執行完畢后才算整個腳本跑完。
exec 6>&-                #刪除文件描述符6
exit 0

說明:{} 這部分語句被放入后臺作為一個子進程執行,這部分幾乎是同時完成的,當fifo中10個空行讀完后 while循環
繼續等待 read 中讀取fifo數據,當后臺的10個子進程后,按次序排隊往fifo輸入空行,這樣fifo中又有了數據,for語句繼續執行。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长宁县| 平南县| 荃湾区| 扎兰屯市| 石门县| 安国市| 临湘市| 抚顺县| 新干县| 确山县| 凌云县| 南郑县| 高清| 开阳县| 揭东县| 云浮市| 无锡市| 东城区| 新乡县| 泰来县| 民和| 大新县| 乌拉特中旗| 剑河县| 资兴市| 天等县| 吴川市| 独山县| 朔州市| 蒙城县| 扶风县| 永登县| 礼泉县| 威海市| 阿巴嘎旗| 沭阳县| 原阳县| 织金县| 辽阳市| 阜阳市| 双峰县|