从 Bash 脚本顺利退出

从 Bash 脚本顺利退出

我正在实施提出的日志解决方案这里,我不知道以下几行是否必需的每当我退出父 Bash 进程/脚本时:

if [ -n "$teepid" ]; then
    exec 1>&- 2>&-  # Close file descriptors to signal EOF to the `tee`
                    # command in the background process
    wait $teepid # Wait for background process to exit
fi

log()这些行可以在函数和脚本的末尾找到。我知道它们是必需的log()功能上,但是它们必需的在剧本的结尾?

换句话说:如果exit我的父进程中的每个命令之前没有写上述代码,我的后台作业是否可以顺利退出?

答案1

PID 标识的进程$teepid使用 进行后台运行&。如果您在未等待该 PID 完成的情况下退出,唯一会发生的坏事就是在 shell 中使用时发生的情况&。稍后您会按下 [Enter] 键,并在显示下一个提示行之前收到一条[1] {pid} exited(或类似内容,现在记不清了)消息。

相关内容