2014-11-04 7 views
0

bash 스크립트에서 특정 태그가있는 파일 (* SDS.csv)의 파일을 모니터링하기 위해 inotifywait를 사용하려고합니다.BASH 님이 다른 스크립트를 트리거하지 못하도록 하시겠습니까?

또한 한 번만 (파일이 디렉토리 데이터에 기록 될 때) 한 번만 실행하려고합니다.

예 :

#! /bin/bash 
inotifywait -m -e /home/adam/data | while read LINE 
do 
    if [[ $LINE == *SDS.csv ]]; then 
    ./another_script.sh 
    fi 
done 

답변

0

이 이상적인 솔루션을하지 않을 수 있지만, 트릭 할 수 있습니다

#! /bin/bash 
while true 
do 
    FNAME="$(inotifywait -e close_write /home/adam/data | awk '{ print $NF }')" 

    if [ -f "/home/adam/data/$FNAME" ] 
    then 
     if grep -q 'SDS.csv' "/home/adam/data/$FNAME" 
     then 
     ./another_script.sh 
     fi 
    done 
done