脚本I'利用如下:
#!/bin/bash
lla=$(top -n 1 | grep "load average" | awk '{print $13,$14,$15}')
mem_usage=$(free | grep Mem | awk '{print $3/$2 * 100.0}')
now=`date`
cur_time=$(echo $now | awk '{print $4}')
for i in {1..60}
do
echo "System Performance Statistics at: "$cur_time | tee -a hp.txt
echo "Linux Load Average: "$lla | tee -a hp.txt
echo "Memory Usage: "$mem_usage | tee -a hp.txt
echo "" | tee -a hp.txt
sleep 3
done
结果:
System Performance Statistics at: 19:00:29
Linux Load Average: 0.13, 0.11, 0.14^[(B^[[m^[[39;49m^[[K
Memory Usage: 82.7672
标准输出根本不显示任何垃圾字符。我需要改变什么?
答案 0 :(得分:4)
在top命令中添加-b,它可以正常工作。
来自man top
:
-b :批量模式操作
在批处理模式下启动,这对于发送输出非常有用 从顶部到其他程序或文件。在这种模式下,top不会 接受输入并运行,直到迭代限制你设置为 `-n'命令行选项或直到被杀死。