명령 결과를 변수에 할당하되 명령이 완료될 때까지 기다리지 마십시오.

명령 결과를 변수에 할당하되 명령이 완료될 때까지 기다리지 마십시오.

다음과 같이 bash 스크립트를 병렬화하려고 합니다.

var01=$(ssh $USER@host01 'bash -s' < ./node.sh) &
var02=$(ssh $USER@host02 'bash -s' < ./node.sh) &
var03=$(ssh $USER@host03 'bash -s' < ./node.sh) &
wait
echo $var01
echo $var02
echo $var03

아마도 제가 여기서 무엇을 하려는지 아실 것입니다. 처음 세 개의 명령을 병렬로 실행한 다음 모든 명령이 완료될 때까지 기다린 다음 마지막으로 순서대로 출력을 인쇄합니다. 하지만 그런 식으로는 작동하지 않는 것 같습니다. 스크립트는 세 개의 빈 줄을 인쇄하지만 앰퍼샌드가 없으면 올바른 출력을 얻습니다. 명령이 순차적으로 실행되기 때문에 시간이 더 오래 걸립니다.

관련 정보