我想从 bash 脚本执行 top 命令
问题是,通常当我在控制台上键入 top 命令时,我会按Ctrl+退出C。
但是当我从 bash 脚本top
运行命令时如何退出?top
例如如何在 bash 中从顶部打印可用内存?
我执行以下操作,但命令不返回值,正如我所解释的
top | grep Mem: | awk '{print $6" "$7}'
当我从控制台运行顶部时:
top
top - 17:55:24 up 20 days, 8:05, 3 users, load average: 0.08, 0.08, 0.04
Tasks: 93 total, 1 running, 92 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.0%us, 3.2%sy, 0.0%ni, 95.2%id, 0.5%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2075516k total, 1731156k used, 344360k free, 373308k buffers
Swap: 4192924k total, 76k used, 4192848k free, 1130448k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 15 0 2072 656 568 S 0.0 0.0 0:01.36 init
.
.
.
答案1
从选项的角度来看,@jimmij 的答案很好top
,尽管看起来输出的格式top
不能以可移植的方式依赖。
您提到您没有该free
实用程序,但这只是界面的包装/proc/meminfo
,您几乎肯定有。为什么不直接从马口(内核)获取您需要的信息:
$ grep MemFree: /proc/meminfo
MemFree: 75916 kB
$
或者,如果您希望通过以下方式将其格式化为单个数字awk
:
$ awk '$1=="MemFree:" {print $2}' < /proc/meminfo
74320
$
答案2
尝试这个:
top -bn1 | awk '$1=="Mem:" {print $6" "$7}'