在后台运行进程并仅在需要时接收其输出的最佳方式是什么?
预期用途:使具有大量初始化的提示输出脚本在每个会话中初始化一次,而不是在每次提示运行时初始化。注意:需要双向通信:shell 需要告诉何时需要新的提示,最后的命令状态是什么。
已知解决方案:
- 一些在文件系统上显式创建的文件(FIFO 文件、UNIX 套接字):最好避免这种情况,因为这意味着我需要选择文件名,确保在退出时对其进行垃圾收集并添加一些内容以清理不再使用的文件崩溃的情况。
- zsh/zpty 模块:这个工作有点矫枉过正,在 bash 中不起作用。
- 协进程:在 bash 和 AFAIK 中不起作用,每个会话只允许一个协进程。