我相信我可以从父进程中派生 10 个子进程。
下面是我的代码:
#/bin/sh
fpfunction(){
n=1
while (($n<20))
do
echo "Hello World-- $n times"
sleep 2
echo "Hello World2-- $n times"
n=$(( n+1 ))
done
}
fork(){
count=0
while (($count<=10))
do
fpfunction &
count=$(( count+1 ))
done
}
fork
但是,如何从我刚刚创建的每个子进程中获取 pid?
原文由 Sam 发布,翻译遵循 CC BY-SA 4.0 许可协议
后台子进程的 PID 存储在
$!
中,当前进程为$$
:在后台函数中,子进程的 PID 是
$BASHPID
而不是$$
现在是父进程的 PID:同样值得一提的是,您可以将循环语句组合成一个类似 C 的 for 循环: