조언을 구하다. 간단한 bash 스크립트를 작성해 보세요. 30분마다 폴더에 들어오는 파일의 비율을 확인합니다. 따라서 우리는 예상되는 총 파일 수와 해당 파일이 폴더에 있어야 하는 기간을 알고 있습니다.
그래서 "유효성 검사 상태"라는 값을 추가하는 데 어려움을 겪고 있습니다. 수익 파일의 비율이 예상보다 높거나 같으면 설정 상태가 확인되고 현재 데이터가 포함된 이메일이 HTML 테이블로 전송됩니다. 따라서 각 스크립트는 HTML 테이블에 추가되는 파일에 데이터를 추가하기 위해 실행됩니다.
테이블 샘플:
| Time | Files count| Files rate | Status |
|14:31 21.01.18| 18567 | 15,6% | Verified |
|15:01 21.01.18| 21402 | 19,2% | Failed |
동일한 스크립트를 실행하고 다른 조건을 확인하는 방법에 대한 솔루션을 찾을 수 없습니다. 나에게 논리는 다음과 같습니다.
첫 번째 스크립트가 실행되고 파일 속도가 15% 이하이면 상태=확인됨, 그렇지 않으면 상태=실패
if [ $attemptrun -eq 2 ] && [ $filerate -gt 15 ]
then status=Verified
else
status=Failed
그러나 각 추가 스크립트를 실행하고 다른 파일 속도를 예상하고 확인하려면 어떻게 해야 합니까(예: 첫 번째 실행 =< 15, 두 번째 실행 =<22, 세 번째 실행 =<35 등)?
답변1
이 시도:
#!/bin/bash
while IFS='|' read -r _ time count rate status; do
((countlines==0)) && continue # skip headers
time=${time// /} # bash parameter expansion to remove spaces
count=${count// /} # same thing...
status=${status// /} # same thing...
rate=${rate// /}
echo "time=$time count=$count rate=$rate status=$status"
if ((${rate%\%} >= 15)) && [[ $status == Verified ]]; then
status=Verified
fi
((countlines++))
done < file.txt