함수 출력을 구문 분석할 수 없습니다.

함수 출력을 구문 분석할 수 없습니다.

나는 서블릿이라는 다른 데몬 Bash 스크립트를 실행하도록 되어 있는 Bash 스크립트를 작성 중입니다.

내가 쿼리하고 싶은 기능은 getStatus다음 과 같습니다

getStatus() {
     servletToCheck="$@"
     if [ "$(ps -aux | grep \"$(whoami)\" | grep \"${servletToCheck}\" | grep -v \"grep\" | wc -l)" -eq 0 ]; then
        echo -n "Offline"
     else
        echo -n "Online"
     fi
}

무엇~해야 한다이것이 하는 일은 인수가 사용자가 소유한 실행 중인 프로세스인지 확인하고, Online그렇다면 출력하고, Offline그렇지 않으면 출력하는 것입니다.
이제 이 기능이 작동하는 것 같습니다.완벽한. 문제는 내가 하는 방식에 있는 것 같습니다.분석하다그것:

if [ "$(getStatus ${tbnServlet})" == "Online" ]; then
    outSuccess "Started servlet: ${tbnServlet}"
    exit 0
else
    outWarning "Failed to start servlet: ${tbnServlet}"
    exit 3
fi

이상한 점은 서블릿이 실행 중인데도 이 메시지가 표시된다는 것입니다. Failed to start/stop servlet서블릿을 나열하는 기능을 실행하면 오프라인이 아닌데도 모든 서블릿이 오프라인으로 나열됩니다.

문제는 무엇이며 어떻게 해결할 수 있습니까?

답변1

이 기본 작업에 코드가 너무 복잡합니다...

pgrep -u $USER "$tbnServlet" >/dev/null && echo "Started servlet: $tbnServlet" || echo "Failed to start servlet: $tbnServlet"

관련 정보