shell异步调用

8/7/2023 shell
#!/bin/bash


fun1(){
    # ./test1.py &
    sleep 5 &
    pid=$!
    echo "父脚本:子脚本(PID=${pid})已启动"
    wait
    echo "父脚本:子脚本(PID=${pid})已结束"
}

fun2(){  
    # ./test2.py &
    sleep 5 &
    pid=$!
    echo "父脚本:子脚本(PID=${pid})已启动"
    wait
    echo "父脚本:子脚本(PID=${pid})已结束"
}

fun1 &
fun2 &
echo "所有脚本开始异步执行"
wait # 如果fun里面没有wait,则整个脚本立刻退出,不会等待fun里面的sleep
echo "任务完成"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/bash

#
# 异步执行(wait)使用样例-父脚本
#

echo "父脚本:启动子脚本.."
./test1.py &
# 通过将shell参数 $! 赋给pid变量,以记录子进程的进程ID
pid1=$!
echo "父脚本:子脚本(PID=${pid1})已启动"


./test2.py &
# 通过将shell参数 $! 赋给pid变量,以记录子进程的进程ID
pid2=$!
echo "父脚本:子脚本(PID=${pid2})已启动"


echo "所有任务开始异步执行"
wait


echo "父脚本:子脚本已结束,父脚本继续.."
echo "父脚本:父脚本执行结束。脚本退出!"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Last Updated: 6/1/2024, 6:36:28 AM