我需要批量处理一些文件,所以我编写了一个bash脚本,它定义了一个用外部包处理这些文件的函数,然后我在每个文件的循环中运行该函数。由于文件太多,我让函数在后台运行。
概念性示例如下。主脚本名为test.sh:
test () {
./toy.sh $1
}
for (( i=1; i<=10; i++))
do
test $i &
done
而toy.sh如下(仅作为一个例子,在现实生活中它正在做一些数据处理):
for (( i=1; i<=10; i++))
do
echo $1
sleep 3
done
问题:有没有办法在循环时杀死在后台运行的测试功能(调用toy.sh)?将流程置于后台的最佳编码习惯是什么?