在 curses window 中执行 bash 命令

Execute bash commands in a curses window

这个问题肯定存在,但是我到处都找不到...

我有一个 (n)curses window,我想将其献给 bash shell (window 2),同时在 Window1:

+-------------------------------+
|                 |             |
|                 |             |
|    WINDOW 1     |  WINDOW 2   |
|                 |             |
|                 |             |
+-----------------+-------------+

我将如何执行此操作?我需要它来接受输入并显示输出,就好像我刚打开另一个终端一样 - 如果可能的话 - 主机是 own curses sessions(例如调用 dialog 命令)

我正在使用 c.

tmux 和 screen 可以将终端 window 细分为多个窗格,这样您就可以按照您的要求进行操作。两者都使用 ncurses 的低级特性(terminfo 或 termcap)。自己在高层次上做这件事不会是一个短小的项目,因为你必须管理伪终端连接才能使 bash 运行 等

bash 期望在 终端 中 运行 ("tty",如果你愿意的话),如果你包装一个应用程序它,使它成为 window 中的 运行,你必须为其 input/output/error 提供连接,使它们像终端一样工作。这就是伪终端:一组系统调用,让程序设置、配置、操作和关闭与需要像终端一样工作的进程(例如 bash)的连接。

使用伪终端的程序包括(毫不奇怪)终端仿真器、特殊应用程序,例如 screen, luit (e.g., the sys.c file)。

这里有一些进一步阅读的链接: