GNU/Linux >> Linux の 問題 >  >> Linux

Bash/Shell で GUI の可用性を検出する方法は?

macOS では、シェルからこれを確認する明確に適切な方法はありません。プログラムによる方法があり、それを利用するためにインタープリター言語を使用できます。

Mac GUI、Mac 非 GUI、または X11 の 3 つの状態のいずれかを出力する小さなスクリプトを次に示します。

#!/bin/bash
if [ `uname` = "Darwin" ]
then
    if which swift >/dev/null && swift <(cat <<"EOF"
import Security
var attrs = SessionAttributeBits(rawValue:0)
let result = SessionGetInfo(callerSecuritySession, nil, &attrs)
exit((result == 0 && attrs.contains(.sessionHasGraphicAccess)) ? 0 : 1)
EOF
)
    then
        echo "Mac GUI session"
    elif [ -n "$DISPLAY" ]
    then
        echo "Mac X11 GUI session"
    else
        echo "Mac non-GUI session"
    fi
elif [ -n "$DISPLAY" ]
then
    echo "X11 GUI session"
fi

Mac には X サーバーをインストールできます。その場合は DISPLAY が定義されています。ただし、Electron アプリがその構成で適切に動作するかどうかはわかりません。それで、私はそれを別々に検出しました。


Linux
  1. Bashは、どのように呼び出されているかをどのように知っていますか?

  2. バッシュを検出する方法>=4.0?

  3. シェルスクリプトBashでサブストリングをチェックする方法は?

  1. シェルがSshから制御されているかどうかを検出する方法は?

  2. Bashシェルスクリプトで改行をエコーする方法

  3. CentOS / RHEL :BASH シェルの履歴を無効にする方法

  1. cronシェルを変更する方法(shからBash)?

  2. Bashシェルスクリプトで文字列を比較する方法

  3. Unix コンソールまたは Mac 端末でシェル スクリプトを実行するには?