각 스크립트 실행 시 서로 다른 내부 변수 값을 예상하도록 하려면 어떻게 해야 합니까?

각 스크립트 실행 시 서로 다른 내부 변수 값을 예상하도록 하려면 어떻게 해야 합니까?

조언을 구하다. 간단한 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

관련 정보