linux - GNU less 的 bash 循环每 2 分钟刷新一次

标签 linux bash background-process gnu-parallel less-unix

我有一台带有数据文件夹和一个脚本的 linux 机器,该脚本生成一个报告 xlsx 电子表格文件,其中包含正在运行的文件夹的不断变化的内容。我使用 xlsx2tsv 脚本将其转换为 tsv 文本,所需时间不到一秒。该脚本大约需要 1 分钟来生成电子表格文件,我希望有一个终端屏幕在 GNU less 缓冲区中显示表格的结果,我可以在其中移动光标,并使用 /search 搜索内容等内容的最新版本。

此刻我有一个 bash while true; do 循环首先计算脚本的内容,然后将其转换为 tsv 并将其通过管道传输到 GNU less。然后在另一个终端屏幕上我有一个 while true; do 循环,每 2 分钟终止一次 less 命令。但这让我有 1 分钟的闲置时间,我正在等待电子表格更新,然后才能使用 less 导航内容。

我想优化此设置,以便在后台生成一个新的电子表格,而不是在我终止 less 命令时,而是在 1 分钟前开始,以便更新的 less 命令总是给我我可以浏览的工作副本。理想情况下无需为其创建第三个终端窗口。

有什么想法吗?也许 GNU 并行?

当前设置:

# screen in the data folder with less command
while true; do $HOME/script -dir $PWD && xlsx2tsv $(ls $PWD/*.xlsx) 1 | column -t | less -S -N; sleep 0.5; done
# screen 2 with the less killing
while true; do pkill less; sleep 120; done

最佳答案

我的 less 手册页是关于“R”命令的:

R Repaint the screen, discarding any buffered input. Useful if the file is changing while it is being viewed.

所以,只需按 R 即可刷新。

关于linux - GNU less 的 bash 循环每 2 分钟刷新一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35227919/

相关文章:

linux - 除非通过符号链接(symbolic link)路径访问,否则将文件设置为只读

ruby-on-rails - 在 Linux 中使用 Ruby on Rails 的后台进程

javascript - 无法让 Grunt 运行

python - 在Python子进程中使用 '&'作为后台进程

php - 在 php 中为长时间运行的进程创建后台进程

linux - Makefile 中的源环境变量文件

linux - 如何构建在 Windows 上运行的 GDB 客户端以连接到 Linux Powerpc 上的 GDB 服务器?

linux - 如何从 80 以外的其他端口从 apache2(来自 GCP 的 linux)访问网站?

java - 无法使用用于执行 Java 程序的 Linux 脚本

通过 RVM 的 Ruby 失败