스크립트가 끝날 때까지 기다리는 방법 - csh?

스크립트가 끝날 때까지 기다리는 방법 - csh?

큰 파일을 작은 파일로 분할하는 스크립트를 실행합니다. 그러다가 내가 물었다.if (-f *filename) then ....

때로는 스크립트가 완료되지 않아 if실행할 수 없는 경우도 있습니다. 시도했지만 sleep문제가 해결되지 않습니다.

내 스크립트: Split -l $number_lines - file2 < file1 >& /dev/null &

'기다리다'는 어떻게 사용해야 하나요?

감사합니다!

답변1

문제를 완전히 해결하는 방법에는 여러 가지가 있습니다.

내가 아는 한, 귀하는 C-Shell을 사용하고 있습니다. (저는 Bash를 사용하지만 제가 상호 작용하는 일부 환경에서는 TCSH를 사용합니다.)

요구 사항을 충족하는 한 가지 방법은 체계적인 프로세스 지향 잠금입니다.

프로세스 잠금 방법은 다음과 같습니다.

#!/bin/csh
set process_id = $1
set sub_sequent_cmd = $2
set ANTECEDENT_PROC = XXYYZZ
#
while (pidof $ANTECEDENT_PROC)
do
  sleep 10
  if (pidof $ANTECEDENT_PROC)
  then
    sleep .1
  else
    ./sub_sequent_command
    break
  fi
end

해결의 전제가 중요합니다. 외부 스크립트를 이용하여 프로세스를 모니터링하고 이전 프로세스가 종료되면 후속 스크립트를 실행합니다.

이는 내보낸 csh 세션에서 호출되도록 csh 스크립트를 리팩터링하는 경우에만 작동합니다.

관련 정보