我想执行top命令,如下所示,并将输出存储到文件中。
xyz.sh
#!/bin/sh
while :
do
top -n 1
sleep 5
done
当我运行代码时,它执行并生成输出正常:
sh xyz.sh
但是当我尝试在后台执行代码时它会被杀死。
sh xyz.sh > xyz.log &
任何想法如何捕获最高输出?
答案 0 :(得分:4)
top
cli命令的行为与您可能从其他实用程序使用的行为不同。这是因为它在典型的过滤器中不起作用,就像从stdin读取并写入stdout一样。相反,它模拟终端。这意味着您不能简单地重定向其输出,因为没有输出写入标准输出。
检查手册页(您应该总是这样做......)。你会注意到-b
标志改变了这种行为。这将允许您做您尝试的。