Я имею эту функцию в моей Баш скриптBash скрипт для подсчета количества появлений струны в файле
if [ $numberOne -gt 10 ]
then
echo "$numberOne has occurred over 10 times"
echo "email me numberOne"
elif [ $numberTwo -gt 4 ]
then echo "$numberTwo has occurred over 4 times"
echo "email me numberTwo"
elif [ $numberThree -gt 4 ]
then echo "$numberThree has occurred over 4 times"
echo "email me numberThree"
elif [ $numberFour -gt 5 ]
then echo "$numberFour has occurred over 5 times"
echo "email me numberFour"
else echo "nothing found yet"
exit
fi
}
Информация: Я порт проверка. Я запускаю скрипт каждую минуту. Когда используется порт, я пишу его в файл, а затем читаю файл. Количество найденных совпадений равно количеству минут. 4 раза - 4 минуты, я хочу знать, активен ли порт больше, чем на несколько минут.
Что я хочу сделать:
3 цифры будут заполнять файл. В какой-то момент один из них будет присутствовать более 4 раз, а затем появится и остальные. В этот момент я хочу получить предупреждение, когда произойдет первое из них или [все из них после первого появления]. В идеале предупреждение будет таким: «NumberOne был открыт в течение 4 минут». И через 1 минуту это будет «5 минут» - пока я не остановлю его или не достигнут порог, я пока не знаю.
Проблема: Проблема здесь в том, что когда NumberOne встречается более 10 раз, а NumberTwo происходит 4 раза, после этого он только повторяет NumberTwo.
Я думал, что смогу использовать continue
после каждого then
, но я не могу!
Также: моя переменная NumberOne. NumberOne=$(grep -wc "port=51555" monitor.txt)
Как вы думаете, что означает 'elif'? Я думаю, вам просто нужно 5 независимых предложений 'if'. Но действительно, что вы хотите, это массив чисел – Peter