ssh 远程运行 - 问题

ssh 远程运行 - 问题

这将打印 4 行:

ssh root@remote_ip "service iptables restart"

输出:

iptables: Flushing firewall rules: [  OK  ]
iptables: Setting chains to policy ACCEPT: filter [  OK  ]
iptables: Unloading modules: [  OK  ]
iptables: Applying firewall rules: [  OK  ]

里面的命令相同VAR=$()

VAR=$(ssh root@remote_ip "service iptables restart")
echo $VAR

这次它只打印这一行:

iptables: Applying firewall rules: [ OK ]: filter [ OK ]

该行甚至不是标准 4 行输出中的一行。

对我来说没有意义。

另外..我想看到像原来一样的 4 行输出。

答案1

如果命令的输出包含回车符(CRLF 或\r\n,如 DOS 那样),则效果如下:

$ text=$( printf 'A\r\nB\r\nC\r\n' )
$ echo $text
 C

但是,如果在 echo 时正确引用变量:

$ echo "$text"
A
B
C

相关内容