Shell腳本並行化處理

shell腳本中&&符號表示串行,&表示並行(實質上是後臺運行)。

1.前後輸入輸出無關的並行處理

對於一個大文本,需要使用命令A,B,C, D進行處理,且A,B,C,D四個命令的輸入輸出是相互獨立的,則其並行處理形式可以如下:

#!/bin/bash

function func_testreco
{
	# args
	param_1=$1
	for i in $param_1
	do
		cmd1=“A &”
		cmd2="B &"
		cmd3="C &"
		cmd4="D &"
	done
	wait
}

set -o errexit
func_testreco $param_1

2.前後輸入輸出不獨立的並行處理

如果A,B,C,D四個命令前後相互依賴,即A的輸出作爲B的輸入,B的輸出作爲C的輸入,C的輸出作爲D輸入,則其並行處理形式如下:

#!/bin/bash

function func_testreco
{
	# args
	param_1=$1
	for i in $param_1
	do
		cmd1="A"
		cmd2="B"
		cmd3="C"
		cmd4="D"
		cmd="$cmd1 && $cmd2 && $cmd3 && $cmd4 &"
		eval $cmd
	done
	wait
}
set -o errexit
func_testreco $param_1




發佈了36 篇原創文章 · 獲贊 39 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章