通过 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)';

因为第一个管道没有执行任何操作并且单引号未配对。但你应该只 scp 一个 sh 文件并运行它。

相关内容