如何通过 shell 脚本在终端上显示实时结果?

如何通过 shell 脚本在终端上显示实时结果?

如何编写实时显示结果的 shell 脚本?

像这样的东西top在一些固定时间间隔后更新结果的命令。

替代文本

答案1

你可以使用手表(1)命令定期运行脚本:

watch -n 1 myscript.sh

这将myscript.sh每 1 秒运行一次,在每次运行之间清除屏幕,并在角落中显示时间戳。您可以使用该-d选项,它甚至会突出显示每次运行的输出差异。

答案2

如果您更具体地说明您正在尝试做什么,将会有所帮助。

这是一个极其简单的例子:

while true
do
    clear
    date
    sleep 1
done

答案3

大多数数据通常在 /proc 虚拟文件系统原语中公开。每个进程在 /proc 目录中都有一个名为 PID 的条目。因此 /proc/5437 将具有 5437 进程的原语。阅读那里的原语并适当地解析将使您接近 top 的功能。

Top 实际上是通过调用特定的函数调用来工作的,这些函数调用直接从内核中提取此信息,而不是从文件中提取信息。要从 bash 执行相同的操作,您必须从 /proc 虚拟文件系统中提取它,或者从其他调用(例如 to )中提取它ps

至于实时性,这在 top 提供的细节级别上不太可行。您可以将时间切片得足够精细,使其看起来是实时的,但您仍然会得到时间切片。

答案4

top用途诅咒并读取/proc文件系统

相关内容