스크립트를 작성하고 있지만 할 수없는 방법이 있습니다 ...
백그라운드 "command1 &"에서 명령을 작성한 다음 스크립트 어딘가에서 command2를 수행하기 전에 명령이 완료 될 때까지 기다려야합니다. 기본적으로 나는 이것이 필요하다.
참고 : 각 명령은 특정 디렉토리에서 실행됩니다! while 루프가 끝나면 내 command1은 4 개의 디렉토리를 만들었습니다. 각 디렉토리마다 특정 프로세스를 실행하므로 총 실행중인 프로세스는 4입니다.
a=1
while [$a -lt 4 ]
. command1
#Generates 1 Process
a= `export $a +1`
done
#Wait until the 4 process end and then run the command2
. command2
wait
pid 프로세스 번호 가있는 명령 에 대해 보았지만 작동하지 않았습니다.
예! 나는 이미 그것을 가지고 :)
—
Joao Macau
이에 따라 답변을 업데이트했습니다. 그것이 당신의 기대와 일치하는지 말해주십시오.
—
Laurent C.
이 Q는 unix.stackexchange.com/questions/100801/… 과 관련이 있습니다. 유일한 차이점은 백그라운드 프로세스에서 PID를 가져와야한다는 것입니다.
—
slm
$!
변수를 사용하여 이것을 얻을 수 wait
있으며 내가 보여준 것처럼 명령에 전달할 수 있습니다. $!
마지막 백그라운드 PID를 $$
포함하고 마지막 프로세스 실행 PID 를 포함합니다.
이제 스크립트가 전혀 이해가되지 않습니다. 구문 오류와 이상이 있습니다. 실제 스크립트 를 보여 주 시겠습니까? 명령을 왜 소싱합니까? 왜 그냥 실행하지 않습니까?
—
terdon
command1
합니까? 4 개의 프로세스의 PID를 반환하도록 수정할 수 있습니까?