在 screen 会话中运行命令以便可以访问其父 shell 的最佳方法是什么?我希望能够从同一个屏幕会话中重新启动它。
我设法想出的最好的是以下内容:
$ cat mr-t.sh
#!/bin/bash
top
exec /bin/bash
Run Code Online (Sandbox Code Playgroud)
进而:
screen -e'^\\\' -S top-in-screen ./mr-t.sh
Run Code Online (Sandbox Code Playgroud)
然后,如果 top 停止运行,我至少会在我可以使用的同一个屏幕会话中获得一个新的 shell。但是,这不是很优雅,而且我不能完全说服自己,如果我点击 Cc,信号将可靠地发送到正确的进程。此外,Cz 根本不起作用。
我在 OSX 上使用 bash 3.2.48,在 Linux 上使用 3.2.39。两者都可能由操作系统供应商修补。
top
当然,这里的命令没有什么特别之处。
[-e'^\\\'
顺便说一句,将魔法屏幕键从 Ca(如果有的话,这是一个糟糕的默认值)重新分配给 C-\。]
gnu-screen ×1