GNU/Linux >> Linux Esercitazione >  >> Linux

Come rilevare la disponibilità della GUI in Bash/Shell?

Su macOS, non esiste un modo chiaramente appropriato per verificarlo da una shell, in quanto tale. C'è un modo programmatico e possiamo usare un linguaggio interpretato per trarne vantaggio.

Ecco un piccolo script che emette uno dei tre stati, Mac GUI, Mac non-GUI o 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

I Mac possono avere un server X installato, nel qual caso DISPLAY è definito. Tuttavia, non so se la tua app Electron funzionerà correttamente in quella configurazione. Quindi, l'ho rilevato separatamente.


Linux
  1. Come programmare con Bash:sintassi e strumenti

  2. Come rilevare se la shell è controllata da Ssh?

  3. Come controllare la sottostringa in Shell Script Bash?

  4. Come fare eco a una nuova riga negli script di Bash Shell

  5. CentOS / RHEL:come disabilitare la cronologia della shell BASH

Come utilizzare il comando Declare in Linux Bash Shell

Come installare Linux Bash Shell su Windows 10

Come verificare se esiste un file o una directory in Bash Shell

Come cancellare la cronologia di Bash in Linux e Mac

Come utilizzare Linux Bash Shell in Windows 10?

Come eseguire il grep di una sezione di un file nella shell bash