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

関連情報