큰 파일을 작은 파일로 분할하는 스크립트를 실행합니다. 그러다가 내가 물었다.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 스크립트를 리팩터링하는 경우에만 작동합니다.