동일한 디렉토리에서 동일한 스크립트의 이중 실행을 방지하는 방법

동일한 디렉토리에서 동일한 스크립트의 이중 실행을 방지하는 방법

동일한 스크립트에서 사용하는 작업 디렉터리/폴더에 여러 파일을 생성하는 .sh 실행 파일을 만들었습니다. 동일한 폴더에서 두 번 실행되면 스크립트 내의 루프가 새 파일과 이전에 생성된 파일을 모두 사용하기 때문에 혼란스러울 수 있습니다. 동일한 폴더에서 동일한 스크립트의 이중 실행을 방지하는 옵션이 있습니까? 그런 다음 echo "이 작업은 여기서 수행되었습니다. 폴더를 변경하세요"

답변1

스크립트가 시작된 후 ".i_am_running" 파일이 있는지 확인하세요. 파일이 존재하지 않는 경우 파일을 생성하고 작업을 실행한 후 파일을 삭제합니다. 존재하는 경우 - 프로세스의 두 번째 인스턴스인 경우 즉시 종료하십시오.

답변2

출력 파일 이름은 다르지만 확장자는 동일합니다. 왜냐하면 내 루프가 "for file in *.bam"과 같고 모든 bam 파일이 새 루프, 이전 루프 및 새 루프를 거치기 때문입니다.

솔직히 말하면 문제와 올바른 해결책을 식별한 것입니다(생성된 파일 목록을 .dll 대신 변수에 저장하기만 하면 됩니다) *.bam.

그것은 "우아함"의 문제가 아닙니다. 지금 당신이 하고 있는 일은 순전히 실수입니다.

관련 정보