GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie erkennt man die Verfügbarkeit von GUI in Bash/Shell?

Unter macOS gibt es keine eindeutig geeignete Möglichkeit, dies von einer Shell aus zu überprüfen. Es gibt einen programmatischen Weg, und wir können eine interpretierte Sprache verwenden, um davon zu profitieren.

Hier ist ein kleines Skript, das einen von drei Zuständen ausgibt, Mac-GUI, Mac-Nicht-GUI oder X11:

#!/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

Auf Macs kann ein X-Server installiert sein, in diesem Fall DISPLAY ist definiert. Ich weiß jedoch nicht, ob Ihre Electron-App in dieser Konfiguration ordnungsgemäß funktioniert. Also habe ich es separat erkannt.


Linux
  1. Programmieren mit Bash:Syntax und Tools

  2. Wie führe ich ein Shell-Skript auf einer Unix-Konsole oder einem Mac-Terminal aus?

  3. So codieren Sie ein Bild mit Base64 in Linux Bash / Shell

  4. Gewusst wie:Unbegrenzter Bash/Shell-Verlauf?

  5. Wie man einen Abschnitt einer Datei in der Bash-Shell grep

So verwenden Sie den Declare-Befehl in der Linux Bash Shell

So installieren Sie Linux Bash Shell unter Windows 10

So überprüfen Sie, ob eine Datei oder ein Verzeichnis in der Bash-Shell vorhanden ist

So löschen Sie den Bash-Verlauf in Linux und Mac

Wie verwende ich die Linux-Bash-Shell in Windows 10?

So schließen Sie eine Datei in ein Bash-Shell-Skript ein