関数出力を解析できません。

関数出力を解析できません。

私はサーブレットという別のデーモン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"

おすすめ記事