哪个开源程序与 Linux“dialog”命令类似?

哪个开源程序与 Linux“dialog”命令类似?

Linux对话命令是在终端窗口(例如在 bash 脚本中)中创建对话框的绝佳工具。

然而,有一个缺点对话即窗口始终位于屏幕的中心。

我特别想使用尾箱功能,例如

dialog --tailboxbg MYFILE 20 20

...在文本对话框中显示文件的尾部(就像内置的 tail 命令一样)。

但是,我想将结果窗口放在屏幕上的不同位置。例如,只在上半部分或下半部分。对话不提供这样的功能。

有没有办法移动对话或者有人可以推荐一个可以做到这一点的替代工具吗?

答案1

可以将对话框放置在你喜欢的任何位置对话--begin开关(http://linux.die.net/man/1/dialog)。但是,要创建动态大小的对话框,无论终端窗口大小如何,都可以工作,您需要使用访问终端窗口尺寸tput。然后您可以在 bash 脚本中执行以下操作:

x=$(tput cols)
y=$(tput lines)
bx=10 # some offset
by=10 # how far down the window should be displayed
padbottom=2
# centered on width                                                     
dwidth=$(($x - $((bx * 2))))
# leave some padding at the bottom
dheight=$(($y - $((by + $padbottom))))
dialog --begin $by $bx --tailbox MY_FILE $dheight $dwidth

结果:在终端窗口的下半部分水平居中显示对话框。

警告:如果窗口尺寸非常小,您可能希望添加一些额外的检查。

答案2

使用 bash 能做的事情非常有限。

然而对于 TUI 程序,您可以使用 ncurses 完成几乎所有需要做的事情。 https://www.gnu.org/software/ncurses/ncurses.html

如果您已经熟悉使用 C 语言进行 curses 编程,那么 curses 提供了 C 函数的包装器。

相关内容