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