SSH は複数の値を渡します。

SSH は複数の値を渡します。

ポートを少し開きたいです。

for i in centos7{3..4};do ssh -T $i "for ir in 53 80 443 3000 3306 5910-5930 5432 8140 8443 10090-10100 20 21;do firewall-cmd --permanent --zone=public --add-port=$ir/tcp;done"; done

返品

Error: INVALID_PORT
Error: INVALID_PORT
Error: INVALID_PORT
Error: INVALID_PORT

このコマンドは大丈夫です。単一のホストで単一のコマンドを実行すると、次のものが返されるためです。

success
success
success
success
success
success
success
success
success

問題は、SSHを介して複数の変数を渡す方法です。

ベストアンサー1

$ir拡張は、リモート側で期待どおりに実行されるのではなく、ローカルシェルによって実行されます。脱出してみてください$… --add-port=\$ir/tcp …

または、コマンドのどの項目もローカルに展開したくないので、二重引用符の代わりに一重引用符を使用してください。

おすすめ記事