使用 screen 分割终端

使用 screen 分割终端

bash脚本中,我想向用户显示一个带有 的文件less,但我不想less占用整个终端:当用户浏览带有 的文件时,我需要在终端中保持一些信息可见less

我用谷歌搜索terminal split linux,所有结果都指的是该screen命令。

经过几个小时的试验结束错误后,我相信我已经想出了一个基本有效的解决方案。我创建了一个screen.rc文件,其中包含:

split
screen 1 less /etc/passwd
focus down
resize 10
screen 2
exec !.. echo Informations area
focus up

现在,在我的bash脚本中,我可以运行

screen -c screen.rc

它创建一个分割终端,其less /etc/passwd输出位于顶部区域和Information area底部区域,顶部区域正在接收用户输入,这正是预期的行为。几乎完美,除了当用户点击q终止时lessscreen不会终止,因为底部区域仍然有一个正在运行的 shell。用户现在需要聚焦底部区域(CTRL+a TAB)并按 Ctrl+d 终止运行bash

因此,退出自定义文件查看器的顺序less现在已变为q CTRL+a TAB CTRL+d:相当多的击键只是为了退出文本文件查看器......

如何screen在 top Regionless命令退出时立即终止?

答案1

发送quit命令将告诉 screen 退出,因此将该less命令替换为:

screen 1 sh -c 'less /etc/passwd ; screen -S "${STY}" -X quit'

或类似的东西。

相关内容