GNU Screenが実行されているかどうかを検出するロジック

GNU Screenが実行されているかどうかを検出するロジック

私が作業しているプロジェクトの場合は、画面が現在ユーザーとして実行されている(接続または切断)を検出したいと思います。私は最小限のプロセスを使用し、distro / unixベースのオペレーティングシステム間で移植可能な方法を望んでいます。

オプション1

ps -U $USER|grep screen|grep -v grep &>/dev/null && screen-yes

これは乱雑に見えますが、作業を完了します。 Darwinでは追加のgrepが必要ですが、CentOSではそうではありません。より良い方法はありますか?

オプション2

screen -list|egrep '(There is a screen on|There are screens on)' &>/dev/null && screen-yes

これはscreenコマンドを直接使用しますが、比較的人間に優しい出力スタイルのために大きな正規表現が必要です。

もっと良い方法がありますか?

ベストアンサー1

画面の戻りコードを使用できる必要があります。画面がある場合は True、画面がない場合は False です。

screen -list >/dev/null && screen-yes

おすすめ記事