如何使每个脚本运行时期望不同的内部变量值?

如何使每个脚本运行时期望不同的内部变量值?

寻求建议。编写一个简单的 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

相关内容