Bash free命令停止工作

Lea*_*ore 0 linux bash tail free-command

我想做以下事情:

获取输出free -mo,取第二行并每30秒将其记录到一个文件中.

我跑的时候

$free -mo -s 30 
Run Code Online (Sandbox Code Playgroud)

它每30秒运行并显示一次输出.

但是当我跑步的时候

$ free -mo -s 30 | head -2 | tail -1
Run Code Online (Sandbox Code Playgroud)

它只运行一次.我无法弄清楚出了什么问题.

free手册说free -s 30每隔30秒运行一次命令.

Wil*_*ung 6

head -2只返回前两行输出然后退出.tail -1返回最后一行,然后退出.当任何程序管道退出,它杀死了整个管道,所以free停止时headtail结束.