shell Concurrence并发
-
#!/bin/bash echo $BASHPID for _ in `seq 100`;do echo start sleep 5 echo $BASH_SUBSHELL echo stop done & sleep 20
7267是脚本进程,其又开启了两个进程7268 7269,7268是for loop放到后台产生的进程与父进程同名
20S后7267 主脚本进程结束,7269 sleep 20进程结束,7268进程挂靠到systemd下此种情况没有把最主要的循环至于后台并发处理
#!/bin/bash echo $BASH_SUBSHELL echo $BASHPID echo `basename $0` while true;do sleep 5 echo ppppp done & sleep 10
-
#!/bin/bash echo $BASHPID for _ in `seq 100`;do { echo start sleep 5 echo $BASH_SUBSHELL echo stop } & done sleep 20
上面的格式把循环并发处理
-
#!/bin/env sh for b in `seq 1 5`;do { for p in {a..d};do echo $p sleep 2 done } & done wait
上面的脚本实现了5任务并发