次のループをローカルで実行できます
for i in A B C; do mycommand $i; done
今送ろうとしています。ssh
次のバージョン
ssh myhost for i in A B C; do mycommand $i; done
次のバージョン
ssh myhost "for i in A B C; do mycommand $i; done"
i
また、ローカル変数が必要なため失敗します。
それを処理する方法?
mycommand
たとえば、他のSSHの場合はどうなりますか?
ssh myhost 'for i in hos1 host2 host3; do ssh "$i" ... another for expression
答え1
一重引用符のみを使用してください。
ssh myhost 'for i in A B C; do mycommand "$i"; done'
$i
ローカルシェルがそれを置き換えるのではなく、sshコマンドのリテラル文字を使用します。一般的に言えば、ここでは値に必ずしも必要ではありませんが、単語の分離の問題を防ぐために拡張を二重引用符で囲むことをお勧めします。
望むより: