You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Linux mpstat输出在日志文件中保持多行格式?

解决mpstat输出写入日志变成一行的问题

嘿,这个问题我之前也踩过坑!原因很简单:你用echo $CPU_USAGE输出变量的时候,Bash会自动把变量里的换行符当成空格处理,原本的多行输出就被合并成一行了。下面给你两种快速解决的办法:

方法一:直接重定向mpstat的输出(最推荐)

不用把输出存到变量里,直接让mpstat的结果追加到日志文件,这样能完美保留终端里的格式:

#!/bin/bash
mpstat >> temp.log

方法二:用双引号包裹变量输出

如果一定要先把输出存到变量里,记得用双引号把变量包起来,这样Bash就不会拆分换行符了:

#!/bin/bash
CPU_USAGE=$(mpstat)
echo "$CPU_USAGE" >> temp.log

补充说明:为什么会这样?

当你不加双引号使用echo $CPU_USAGE时,Bash会执行单词拆分操作——它会把变量里所有的空白字符(包括换行、空格、制表符)都当成分隔符,把内容拆成多个“单词”,然后echo再用空格把这些单词拼接起来输出,自然就变成一行了。而加了双引号之后,单词拆分的步骤会被跳过,变量里的换行符会完整保留下来。

内容的提问来源于stack exchange,提问作者Monty Swanson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:10:07