다음 줄을 사용하여 원격 컴퓨터에서 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하고 실행해야 합니다.