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하고 실행해야 합니다.

관련 정보