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라인 중 하나도 아닙니다.

나에게는 이해가 되지 않습니다.

또한..전과 동일한 4줄의 출력을 보고 싶습니다.

답변1

명령 출력에 캐리지 리턴(CRLF 또는 \r\nDOS의 경우)이 포함된 경우 효과는 다음과 같습니다.

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

그러나 에코할 때 변수가 올바르게 인용된 경우:

$ echo "$text"
A
B
C

관련 정보