저는 bash 스크립팅 초보이고 이 시나리오를 약 6시간 동안 검색했지만 아무 소용이 없었습니다. 필요한 부분을 찾았지만 포괄적인 솔루션은 없습니다.
file1.txt
문제는 다음과 같습니다. 3개의 파일( , file2.csv
및 file3.log
) 이 있는지 확인할 수 있는 코드를 작성해야 합니다 . 그러나 계속하기 전에 쓰기가 중지되었는지 확인해야 합니다 file3.log
(3개의 파일을 생성하는 스크립트가 성공적으로 완료되었는지 확인하기 위한 것입니다).
다음과 같은 방법을 사용하면 이러한 파일의 존재를 확인하는 것이 충분히 쉬워 보입니다.
if [ -f -e /path/to/file/file1.txt && /path/to/file/file2.csv && /path/to/file/file3.log]
then
# somehow check the exit status of file3.log
if [$? !=0]
#somehow loop (maybe every 5 minutes) until $?=0
done
또는
나는 또한 이 모든 것을 함께 피하고 초기 스크립트의 종료 상태를 확인할 수 있는지 생각하고 있었습니다. 하지만 어떤 종류의 오류가 발생하여 파일이 생성되지 않으면 스캔 프로세스의 다음 부분에 약 2일이 걸리기 때문에 심각한 문제가 될 수 있기 때문에 확실하지 않았습니다.
이것이 어리석은 질문처럼 보일 수 있다면 죄송합니다. 저는 Google의 "if-until-exit-zero-else..." 구멍에 너무 깊이 빠져 있어서 여기서 무엇을 해야 할지 모르겠습니다.
답변1
명명된 프로그램이나 스크립트가 완료되었는지 확인하려면 다음 명령을 사용하십시오.
wait $(pgrep program-name)