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