在 Bash 中创建类似表格的 CLI 显示的最佳方法?

unf*_*nfa 2 command-line bash printf text-user-interface

我正在编写一个用于大规模 USB 闪存测试的 Bash 脚本(f3在后台使用)。我需要显示一个包含多个列和单元格的类似表格的界面。

目前我正在使用printfwith ,它看起来像这样:

在此输入图像描述

我为每个驱动器运行一个单独的函数,将文本写入日志文件。解析这些日志文件以向用户显示信息。

正如您所看到的,有些行具有不应该存在的偏移量,但我无法摆脱它们,这似乎不是由打印的长字符串引起的。我不知道这是什么。

我遇到的另一个问题是刷新时间以及有时需要手动清除和重绘整个屏幕,因为偶尔会出现 stderr 消息grep,或者cat当某些文件无法正确读取时。

我目前正在对该脚本进行部分重写,并且我可以更好地在屏幕上打印数据。我想过调查一下,ncurses但这似乎有点太复杂了,可能会让我维护起来变得复杂。

我想知道是否有一种方法可以让我将echoprint命令转储到文本文件中,然后立即执行所有命令以基本上拥有一个文本“后缓冲区”,以便我的刷新可以更加一致和更快?

我还希望能够监听用户的击键并在后台做出反应,但这不是优先事项。

也许有更好的方法在 Bash 中做这种事情,但我不知道?

小智 5

使用column -t应该适合你。