コマンド出力に基づいてスクリプトを実行する方法

コマンド出力に基づいてスクリプトを実行する方法

Centosサーバーの特定のポートで実行されているプロセスを保持し続けるクローンジョブを設定しようとしています。

前の議論に基づいて、cronジョブで呼び出す次のスクリプトを考えました。

#!/bin/bash
opt="$(lsof -i tcp:9090| awk 'NR!=1 {print $2}')"
echo $opt
if [ -z "$opt" ]
then
    # nohup npm start & 1>/dev/null 2>/dev/null &
    echo "App Restarted" | mail -s "App is restarted"  "myemail"
fi

これは変数出力の値に関係なくトリガされ、ここで何が間違っているかはわかりません。

答え1

#assign output of a command to a variable
output="$(command)"

#test variable to see if empty
if [ -z "$output" ]
then
   #do something
   a_command
fi

関連情報