我有一个bash脚本,用于检查外部温度计的温度,如果低于定义的数量时发送警报。然而它所做的是在10秒后不断发出警报(这是它最初的设计)。我想要做的是,如果它下降到22度以下,则发出一次警报,如果它超过22度,则发送另一次警报,但是只发生一次,等等。只警告一次的Bash脚本
#!/bin/bash
while true; do
val=$(cat /sys/bus/)
min=$(echo "22.0")
if [[ "$val" < "$min" ]]
then
sendmail "too cold"
sleep 10
else
echo "All ok"
sleep 10
fi
done
exit 0
你可以做一些临时变量存储'val'和检查适用于像'如果follwing条件[ [“$ prev”-ne“$ val”]];然后prev = $ val if [[“$ val”<“$ min”]];然后.....' –
'min = 22.0'就足够了;你不需要捕获'echo'的输出。 – chepner