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

Shell脚本问题:远程服务器命令输出无法按行显示求助

解决脚本输出异常与不换行的问题

你的脚本出现输出混乱和不换行的问题,主要是两个语法错误导致的,咱们来一步步修复:

问题根源

  1. 命令未正确分隔:你把多个echo命令挤在同一行,却没使用分号(;)分隔或换行,Shell会把后续的echo当成前一个echo的参数,所以才会出现Hostname is: echo这种异常内容。
  2. 语法未闭合:最后一个free -m的反引号(`)没有收尾,这会让Shell解析时出错,直接截断部分输出。

修正后的脚本

推荐把每个独立命令单独换行,让逻辑更清晰,同时补全闭合的反引号,脚本如下:

echo "Hostname is: `hostname`"
echo
echo "Disk Space is:"
df -h /
echo
echo "Free Space is:"
free -m

如果一定要写在同一行,记得用分号分隔每个命令:

echo "Hostname is: `hostname`"; echo; echo "Disk Space is:"; df -h /; echo; echo "Free Space is:"; free -m

优化说明

  • 把df -h /和free -m从反引号中抽出来单独执行,能保留它们原本的格式输出,不会被echo的字符串打乱排版。
  • 每个命令单独换行(或用分号分隔),Shell才会逐个执行,确保每条输出都能单独成行。

预期输出示例

执行修正后的脚本,你会得到整齐的分段输出:

Hostname is: your-server-hostname

Disk Space is:
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G   15G   35G  30% /

Free Space is:
              total        used        free      shared  buff/cache   available
Mem:           7859        1234        5432          12        1193        6401
Swap:          8191           0        8191

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:51:21