另一个 shell 脚本中后台的交互式 shell

另一个 shell 脚本中后台的交互式 shell

尝试在 shell 脚本内运行交互式 sh 会话时遇到一些问题。内部 sh 进程使用所有 CPU 并且永远不会终止。

要重现该问题,只需创建一个名为“script.sh”的文件,其中包含如下内容:

sleep 10 | sh -i | sleep 10 &

并使用以下命令执行它:

sh script.sh

sleep 命令只是占位符,我还有其他命令将输入​​传输到 sh -i 并处理其输出。我知道这是一个非常奇怪的设置,但如果我可以使用交互式 shell 会更好,此时,我很好奇,我想了解发生了什么。

答案1

你的内壳不是交互式的;去掉-i标志,它就不会再发疯了。

交互式 shell 在孤立进程组中应该做什么?解释幕后发生的事情。

相关内容