我希望能够在 shell 的后台运行任务,并且不让它们的输出到 stdout 或 stderr 覆盖底部的命令行。我经常需要运行其他命令来与后台进程交互,并且希望在同一个 shell 中这样做,而不必打开另一个终端或使用多路复用器来分割终端,如屏幕。
理想情况下,会有一些我不知道的设置(我通常使用 bash 或 ksh),但我可以使用新的或不同的 shell 或脚本。
我愿意接受任何建议并感谢任何帮助,谢谢。
编辑:感谢您的所有回答,但我的问题有点不清楚。我仍然需要观察后台任务的输出,我只是希望它不涵盖我可能在命令行上键入的任何新命令。理想情况下,后台程序的输出将显示在除了 shell 的底行之外的所有内容中,让我可以自由地在该行中构建新命令。
这类似于在底部窗口只有 1-2 行高的情况下水平拆分运行屏幕,但出于我的目的,使用屏幕具有以下缺点:
- 我不需要/不希望进程在注销后仍然存在
- 需要一两个额外的命令来设置(即使拆分和窗口大小是在 .screenrc 文件上完成的)
- 我希望能够在不切换屏幕窗口的情况下使用 shell 的作业控制命令(即,至少在 bash 的情况下,作业、bg、fg、kill %1)
再次感谢您的帮助,这是我的第一个问题,我被答案的速度和数量所震撼!