아래 스크립트를 시도 중입니다. date1의 filesdir 폴더에 두 개의 파일을 받고 싶습니다. 날짜가 1이면 두 파일이 모두 수신되었는지 확인해야 하기 때문에 반복하고 루프를 확인할 때마다 카운터 "카운트"를 증가시키려고 합니다. 날짜가 1이고 파일이 수신되지 않으면 몇 초 정도 기다렸다가 다시 확인해야 합니다(파일은 확실히 수신되므로). 날짜가 1이 아니면 파일을 삭제하고 while 루프를 종료해야 합니다. 나는 다음을 시도하고 있습니다.
day_of_month=$(date +%d)
export filesdir=/dir1/dir2/dir3
local count=0
numFilesReceived=0
while true; do
files=$(find $filesdir -name '*.txt.gz' -type f -mmin -1)
if [ "$day_of_month" == "1" ]; then
if [ -f "$files" ]; then
count=$((count + 1))
break
if [ "$numFilesReceived" == "$count" ]; then
echo "All $count data received!"
break 3
fi
fi
else
echo "No data received yet!"
fi
fi
else
rm $files
fi
done
나는 내가 정말로 원하는 것을 얻지 못했습니다. 대신 if else 부분에서 오류가 발생합니다.
답변1
s의 개수는 s의 개수 fi
와 같아야 합니다 . if
현재 가 너무 많습니다 fi
.
is, not 이 포함된 단일 표현식 if
의 구조입니다 .else
if... then... else... fi
if... then... fi... else... fi