如何编写实时显示结果的 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
文件系统