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