linux - linux bash循环,每 2分钟刷新一次

  显示原文与译文双语对照的内容
129 1

我有一个linux机器,它有一个数据文件夹和一个脚本,可以以在所运行的文件夹上更改文件夹。我使用xlsx2tsv脚本将它转换为不小于1 秒的tsv文本。这个脚本花了大约 1分钟生成电子表格文件,我想用一个终端屏幕显示表格结果,用鼠标更少的缓冲区,我可以用光标来移动,最多版本的内容的内容。

现在我有一个 bash while true; do 循环,它首先计算脚本的内容,然后将它的转换为tsv并将它的转换为 GNU less然后在另一个终端屏幕上,我有一个 while true; do 循环,每次 2分钟终止 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
时间:原作者:0个回答

62 1

我的less手册页说明了"R"命令

R 重新绘制屏幕,放弃任何缓冲输入。如果文件正在被查看而正在更改,则为有用。

所以只要按 R 来刷新。

原作者:
96 0
while true; do
 (sleep 0.5
 $HOME/script -dir $PWD &&
 xlsx2tsv $(ls $PWD/*.xlsx) 1 |
 column -t> new;
 mv new old;
 killall less
 ) &
 less -S -N old
done
原作者:
...