这将打印 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