1. 程式人生 > >Shell指令碼並行化處理

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