Удаленный запуск 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-строчный вывод, как в оригинале.

0
12.02.2017, 23:19
1 ответ

Если выходные данные команды содержат символы возврата каретки (CRLF или \ r \ n , как это делает DOS), это будет будет эффектом:

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

Однако, если вы правильно процитируете свою переменную при повторении:

$ echo "$text"
A
B
C
2
28.01.2020, 02:34

Теги

Похожие вопросы