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

远程控制台与本地脚本执行tail命令结果不一致的解决求助

解决远程SSH命令输出换行丢失的问题

问题原因

你遇到的换行丢失是因为Bash的单词拆分机制:当执行echo ${result}时,未加引号的变量会被Bash按空白字符(包括换行、空格)拆分,最终输出时用空格拼接所有拆分后的内容,导致原本的换行被替换成空格。

解决方案

方案1:给echo的变量添加双引号

修改脚本中的echo行,用双引号包裹变量,保留原始格式:

#!/bin/bash

result=`ssh -p 27 myremoteserver "tail \"/usr/tmp/mylogfile.log\""`

echo "${result}"

方案2:直接执行SSH命令,不存变量

如果不需要对远程输出做额外处理,直接让SSH命令的输出打印到本地终端,天然保留换行:

#!/bin/bash

ssh -p 27 myremoteserver "tail \"/usr/tmp/mylogfile.log\""

方案3:使用printf输出变量

如果需要更灵活的输出控制,可用printf,同样需用双引号包裹变量:

#!/bin/bash

result=`ssh -p 27 myremoteserver "tail \"/usr/tmp/mylogfile.log\""`

printf "%s" "${result}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:43:13