小编Kol*_*tak的帖子

在后台启动功能并保存PID

我有一个包含两个函数的脚本。一个函数将另一个函数作为后台进程启动,并返回该进程的 UID。只要我不想将 PID 放入专用变量中,这种方法就很有效。一旦我尝试将 PID 分配给变量,脚本就会挂起,直到后台操作完成。

此行为可以通过以下脚本演示:

#!/bin/sh

foo () {
    bar &   # start bar in background
    echo $! # return bars' PID
}

bar () {
    sleep 5 # some background operation
}

FOO=$(foo) # remember the PID of bar
echo $FOO  # expectation: should echo immediately
           # reality: echo after five seconds
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:如何让脚本在启动函数后继续执行bar,而不等待bar返回?

shell background-process bash-functions

5
推荐指数
1
解决办法
6635
查看次数

标签 统计

background-process ×1

bash-functions ×1

shell ×1