如何让变量存储的ps命令结果按换行显示?
解决变量存储命令结果后换行丢失的问题
问题原因
当你直接执行echo $httpd时,Shell会对变量内容做单词拆分——把所有换行、制表符、连续空格都替换成单个空格,原本的多行结果就被挤成了一行。而直接执行命令时,输出的换行符会被终端直接解析,所以能正常显示多行格式。
解决办法
方法1:用双引号包裹变量输出
双引号会保留变量里的原始空白字符(包括换行),是最常用的解决方式:
echo "$httpd"
方法2:使用printf输出
printf的跨系统兼容性比echo更好(不同系统的echo行为可能存在差异),同样通过双引号包裹变量来保留格式:
printf "%s" "$httpd"
额外提示
如果后续需要对命令结果做进一步处理,也可以考虑不存入变量,直接通过管道传递;但如果必须用变量存储,记得在引用变量时始终用双引号,避免意外的格式丢失。
内容的提问来源于stack exchange,提问作者majan
相关产品推荐
相关产品推荐

