在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
终止时less
,screen
不会终止,因为底部区域仍然有一个正在运行的 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'
或类似的东西。