SSH経由でリモートコンピュータでforループを実行する

SSH経由でリモートコンピュータでforループを実行する

次の行を使用して、リモートコンピュータでforループを実行しようとしています。

ssh ubuntu@host -n "RPM=\`ls /var/www/html/tmp/* | for i in "${promotebuilds[@]}" ;  do  grep -E $i /var/www/html/tmp/*; done'\`";

これにより空の出力が返されます。これを確認してください。協会エラー1)の場合、パラメータは文字列と配列が混在しています。 *または別のパラメータを使用してください。 2)要素が再分割されるのを防ぐために二重引用符配列を拡張します。

よくわかりません。

ベストアンサー1

ssh ubuntu@host -n "RPM=`ls /var/www/html/tmp/* | for i in "${promotebuilds[@]}" ; do grep -E $i /var/www/html/tmp/ *完璧な ''';

ssh ubuntu@host -n 'RPM=$(for i in "${promotebuilds[@]}" ;  do  grep -E $i /var/www/html/tmp/*; done)';

最初のパイプは何もせず、一重引用符がペアになっていないためです。ただし、shファイルをscpして実行する必要があります。

おすすめ記事