Условия и диапазоны в заявлениях о делах в bash

Я писал плагин для Nagios, чтобы проверить количество пакетов безопасности и сделать оператор case как тот, что здесь.

, но все это превратилось в уродское шоу. Все, что я в основном хотел сделать, это сказать, что если между 1-20 пакетами показано это предупреждение, если 21-бесконечность отображается критически и так далее, но я не мог просто делать [ -gt 1 ] или даже [20-10000]

[d3 ] При применении этих диапазонов скрипт запускается некорректно и предупреждает, когда он должен быть критическим, и т. Д. Я думаю, что я собрал, что диапазоны на самом деле не возможны здесь, мне просто интересно, почему это сработало для приведенного выше примера, но не для меня. Кроме того, можно ли вообще включить условия в случае?

В итоге мне удалось создать полностью рабочий скрипт, но мне пришлось создавать условия if и передавать их в случай. Просто интересно, есть ли более простой способ сделать это, не делая этого.

Ниже приведено более или менее то, что я пытался сделать. Последняя часть была только тем, что я отчаянно пытался загружать разные диапазоны, чтобы увидеть, сработало ли это.

case $SECURITY_PACKAGES in

   0)

   echo "OK - not bad: There are a total of $TOTAL_PACKAGES packages to upgrade in this server, but none of them are security updates!"

   exit 0

   ;;

   [1-20]*)

  echo "WARNING - $TOTAL_PACKAGES packages required to upgrade in this server, of which $SECURITY_PACKAGES are security updates"

 exit 1
  ;;

   [21-99]|[100-999]|[1000-9999]*)

   echo "CRITICAL -  $SECURITY_PACKAGES out of $TOTAL_PACKAGES are security     updates! Consider upgrading soon!"

 exit 2
;;

*) echo "UNKNOWN - I am not sure what's happening now, check later or check server: $TOTAL_PACKAGES to upgrade, $SECURITY_PACKAGES are security updates"

exit 3
;;

esac
1
задан 15 October 2015 в 01:02

0 ответов

Другие вопросы по тегам:

Похожие вопросы: