linux 对话框命令是在terminal窗口中创build对话框的好工具(例如在bash脚本中)。
然而, 对话的缺点是窗口总是位于屏幕的中心。
特别是我想使用尾盒function,例如
dialog --tailboxbg MYFILE 20 20
…在文本对话框中显示文件的尾部(就像内置的tail命令一样)。
但是,我想将结果窗口放在屏幕上的不同位置。 例如刚刚在上半部分或下半部分。 对话框不提供这样的function。
有什么办法可以移动对话框提供的窗口,或者有人推荐一个替代工具,这是有能力吗?
可以使用对话框的开始--begin ( http://linux.die.net/man/1/dialog )将对话框 --begin任何位置。 但是,要创builddynamic大小的对话框,无论terminal窗口的大小如何,都需要使用tput来访问terminal窗口的大小。 然后你可以在你的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
结果:terminal窗口下半部分的水平居中对话框。
警告:您可能希望添加一些额外的检查,以防窗口大小非常小。
只有你可以用bash做很多事情。
然而,对于TUI progarms,你可以用ncurses来完成你所需要的一切。 https://www.gnu.org/software/ncurses/ncurses.html
有curses提供的C函数的包装器; 如果你已经熟悉C中的curses编程