Shell指令碼並行化處理
阿新 • • 發佈:2019-01-29
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