我正在尝试使用以下行在远程计算机上执行 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 文件并运行它。