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ラインの1つではありません。

私にとっては理解できません。

また..前と同じ4行の出力を見たいです。

ベストアンサー1

コマンド出力にキャリッジリターン(CRLFまたは\r\nDOSの場合)が含まれている場合の効果は次のとおりです。

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

ただし、エコー時に変数が正しく引用されている場合:

$ echo "$text"
A
B
C

おすすめ記事