SSHによるリモートforループ

SSHによるリモートforループ

私のスクリプトには次のものがあります

for server in ${servers[@]}; do
    echo ${server}
    ssh user@${server} "for i in /tmp/foo* ; do echo ${i}; done"
done

しかし、これはうまくいきません。奇妙なことに、$ I金額の返品ラインが表示されます。したがって、10個のファイルがある場合は、10個の空白行が表示されます。

ベストアンサー1

ローカルシェルは${i}二重引用符()"内の内容を解釈するため、このコマンドの結果は次のとおりです。

ssh [email protected] "for i in /tmp/foo* ; do echo; done"

一重引用符(')のみを使用すると問題が消えます。

ssh user@${server} 'for i in /tmp/foo* ; do echo $i; done'

おすすめ記事