당신은 대기 내장을 사용하는 것이 좋습니다.
대기 [N ...]
지정된 각 프로세스 기다린은 종료 상태를 반환한다. 각 n은 프로세스 ID 또는 작업 스펙 일 수 있습니다. 작업 사양이 주어지면 해당 작업의 파이프 라인에있는 모든 프로세스가 대기합니다. n을 지정하지 않으면 현재 활성화 된 모든 자식 프로세스가 대기하고 반환 상태는 0입니다. n이 존재하지 않는 프로세스 또는 작업을 지정하면 리턴 상태는 127입니다. 그렇지 않으면 리턴 상태는 마지막 프로세스 또는 대기중인 작업의 종료 상태입니다.
wait %1 %2 %3 ...
을하지만만큼 당신이 다른 자식 프로세스가 없기 때문에, 당신은 단지 인수로 사용할 수 있습니다;
당신은 %1
, %2
으로, ... 당신의 작업을 지정할 수 있습니다 모든 자식 프로세스를 완료하는 것이 기다립니다 것이다 : 단지 서로 다른 출력을 유지하는 방법
for ...; do
...
done
wait
echo "All done!"
별도의 질문은 조금 까다 롭습니다. 정확히 무엇을 의미합니까? 무엇과 다른가요?
for ...; do
if diff -q $this_output $base_output; then
# files are identical
rm $this_output
fi
done
모든 고유 한 출력을 유지하려면이 알고리즘은 분명 조금 더 복잡하지만, 당신은 여전히 동일한 출력을 테스트하기 위해 diff -q
을 사용할 수 있습니다 : 당신이 기준이있는 경우, 당신은이 작업을 수행 할 수 있습니다. GNU 병렬 http://www.gnu.org/software/parallel/와
지금 삭제 된 답변에서 지적한 것처럼 'j'는 'i'여야합니다. 또한'output- $ N'은 각각의 테스트에서 같은 파일 "output-10"을 덮어 쓸 것입니다. 나는 여러분이'output- $ i'을 원한다고 확신합니다. 그래서 여러분은 10 개의 다른 출력 파일을 가지고 있습니다. –