SSH를 사용하는 원격 서버에서 "for" 루프가 실행되지 않음

SSH를 사용하는 원격 서버에서 "for" 루프가 실행되지 않음

아래의 "for" 루프는 동일한 서버에서 로컬로 실행됩니다.

그러나 원격 서버에서 "ssh" 프로토콜을 통해 트리거되면 출력이 수신되지 않습니다.

원격 서버에서 트리거될 때 작동하게 하는 방법을 제안할 수 있는 사람이 있습니까?

for i in $(cat Server_List)  # Works
do   # Works
echo $i  # Works
ssh $i '$(for a in `/usr/sbin/lspath|grep scsi|awk '{print \$2}'|sort|uniq`;   # Doesn't Work
do    # Doesn't Work
echo "\$a `/usr/sbin/lspath |awk '/'\$a' /' |uniq|awk '/Enabled/'|wc -l`;done)'   # Doesn't Work
done  # Works

답변1

heredocSSH를 통해 여러 줄 명령을 실행할 수 있습니다 .

ssh user@host <<'EOC' 
  for a in $(/usr/sbin/lspath | awk '/scsi/ {print $2}'| sort -u); do
    # do something
  done
EOC

관련 정보