Счетчик не фиксируется в переменной сценария оболочки - PullRequest
0 голосов
/ 19 июня 2020

Я пытаюсь захватить количество активных процессов, запустив команду и пытаюсь зафиксировать результат в переменной сценария оболочки, но, к сожалению, ничего не получается. Код выглядит следующим образом:

#!/bin/ksh

## Checking whether or not the Previous Build is Completed

count_build_status=`ps -ef | grep BDD_PreCheck.sh | grep -c FT_BGmgmt` | tee -a ${logFile}

    echo "The Value of Count Build Status is $count_build_status"

        if [[ "${count_build_status}" != "0" ]]

        then

            echo INFO -  The previous build has not ended yet. Please Wait for some time or contact the Administrator | tee -a $logFile

        exit 1;

        fi

exit 0;

Здесь ps -ef | grep BDD_PreCheck.sh | grep -c FT_BGmgmt дает результат 0, если выполняется индивидуально, но значение, хранящееся в count_build_status, равно null.

Кто-нибудь может помочь?

Ответы [ 2 ]

1 голос
/ 19 июня 2020

Проблема здесь - обратная кавычка, которая не присваивает значение переменной, когда тройка не выполняется внутри обратной кавычки. Он должен быть включен в конец файла журнала, как в приведенном ниже коде.

#!/bin/bash

logFile=log.txt

## Checking whether or not the Previous Build is Completed

count_build_status=`ps -ef | grep BDD_PreCheck.sh | grep -c FT_BGmgmt | tee -a ${logFile}`

    echo "The Value of Count Build Status is $count_build_status"

        if [[ "${count_build_status}" != "0" ]]

        then

            echo INFO -  The previous build has not ended yet. Please Wait for some time or contact the Administrator | tee -a $logFile

        exit 1;

        fi

exit 0;
1 голос
/ 19 июня 2020

пример: захватить вывод cmd-строки в переменную и добавить файл журнала с tee:

var=`ps -ef | grep 0 | grep -c 1 | tee -a log`
echo $var
...