inotifywait를 사용하여 폴더를 관찰하고 파일이 발견되면 해당 파일에 대해 스크립트를 실행합니다.

inotifywait를 사용하여 폴더를 관찰하고 파일이 발견되면 해당 파일에 대해 스크립트를 실행합니다.

누군가가 나를 도울 수 있기를 바랍니다. 폴더의 파일을 가리키면 동일한 폴더에 JSON 파일을 생성하는 스크립트를 사용하고 있습니다. 다음은 현재 수행 중인 스크립트를 파일별로 실행하는 데 사용되는 명령입니다.

bash /path/to/script/PageBuilder.sh "/path/to/file/cvinfo"

inotifywait하위 디렉터리를 스캔하고 각 cvinfo파일을 찾아 해당 파일에서 스크립트를 실행하고 싶습니다 .

지금까지 운없이 시도한 것은 다음과 같습니다.

psttern="cvinfo"
inotifywait -m -r -e close_write --format %w%f /mnt/m/Comics/ | while read FILENAME; do
  if [[ "$FILENAME" == *${pattern}* ]]; then
    bash /mnt/m/PageBuilder/PageBuilder.sh "$FILENAME";
  fi
done&

현재 이는 감시만 설정하고 cvinfo파일을 폴더 안팎으로 이동하거나 편집하는 등 의 경우에도 아무 작업도 수행하지 않습니다.

이 모든 것에 대한 나의 지식은 전적으로 우리 친구인 Google에서 나온 것이므로 나는 그것이 어떻게 작동하는지에 대해 아주 기본적인 것만 이해하고 있습니다. 도움이 될만한 다른 게시물을 찾아보았지만 어느 것도 내 문제를 해결하지 못했습니다.

Windows를 사용하고 있지만 BASH 터미널에서 실행 중입니다.

답변1

관련 주제를 조사하던 중 우연히 발견한 내용입니다... 오래된 게시물인 것은 알지만, 쉘 변수에 ( psttern대신 ) 오타를 만든 것 같습니다 pattern.

나는 직접 테스트하지 않고 어떻게 실패할지 알 만큼 전문가는 아니지만 조용히 실패할 수도 있습니다(그리고 변수가 ${pattern}초기화되지 않았을 수 있으므로 어떤 경우에도 true를 반환할 것입니다 $FILENAME).

관련 정보