![SSH를 통해 원격 컴퓨터에서 for 루프 실행](https://linux55.com/image/163885/SSH%EB%A5%BC%20%ED%86%B5%ED%95%B4%20%EC%9B%90%EA%B2%A9%20%EC%BB%B4%ED%93%A8%ED%84%B0%EC%97%90%EC%84%9C%20for%20%EB%A3%A8%ED%94%84%20%EC%8B%A4%ED%96%89.png)
다음 줄을 사용하여 원격 컴퓨터에서 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하고 실행해야 합니다.