これにより、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\n
DOSの場合)が含まれている場合の効果は次のとおりです。
$ text=$( printf 'A\r\nB\r\nC\r\n' )
$ echo $text
C
ただし、エコー時に変数が正しく引用されている場合:
$ echo "$text"
A
B
C