Это напечатает 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-строчный вывод, как в оригинале.
Если выходные данные команды содержат символы возврата каретки (CRLF или \ r \ n
, как это делает DOS), это будет будет эффектом:
$ text=$( printf 'A\r\nB\r\nC\r\n' )
$ echo $text
C
Однако, если вы правильно процитируете свою переменную при повторении:
$ echo "$text"
A
B
C