Проверка KornShell с использованием кодов выхода - PullRequest
0 голосов
/ 03 января 2012

Я пытаюсь создать скрипт KornShell (ksh) для проверки состояния процесса. Если статус «проходной», он будет просто повторять «пройденный». Если статус «сбой», он отправит предупреждение.

Я могу придумать два метода:

  1. Захватить состояние процесса во временный файл и найти в этом файле термины "pass" или "fail" и соответственно выполнить действие

    например.

    servicename > tmp.file
    grep pass tmp.file
    
    if exists, echo "pass"
    
  2. Grep для «pass» или «fail» и использование кода выхода для других операций

    , например * * 1016

    servicename | grep pass
    
    if exit $? = 0, echo "pass"
    
    else do something
    

Что вы думаете о двух вышеуказанных подходах и как бы вы подошли к нему? Будем весьма благодарны за любые фрагменты кода.

1 Ответ

1 голос
/ 03 января 2012

Предполагая, что servicename возвращает ненулевой код выхода при ошибке, вы можете сделать:

if servicename > /dev/null 2>&1
then
    echo pass
else
   # do something
fi

Если servicename неправильно установил свой код выхода:

if servicename | grep -q pass
then
    echo pass
else
   # do something
fi
...