GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo detectar la disponibilidad de GUI en Bash/Shell?

En macOS, no hay una forma claramente adecuada de verificar esto desde un shell, como tal. Hay una forma programática y podemos usar un lenguaje interpretado para aprovechar eso.

Aquí hay una pequeña secuencia de comandos que genera uno de los tres estados, 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

Las Mac pueden tener un servidor X instalado, en cuyo caso DISPLAY se define. Sin embargo, no sé si su aplicación Electron funcionará correctamente en esa configuración. Entonces, lo detecté por separado.


Linux
  1. ¿Cómo sabe Bash cómo se está invocando?

  2. ¿Cómo verificar la subcadena en Shell Script Bash?

  3. Cómo hacer eco de una nueva línea en Bash Shell Scripts

  4. CentOS / RHEL:cómo deshabilitar el historial de shell BASH

  5. ¿Cómo ejecutar un script de shell en una consola Unix o terminal Mac?

Cómo usar el comando Declare en Linux Bash Shell

Cómo instalar Linux Bash Shell en Windows 10

Cómo verificar si existe un archivo o directorio en Bash Shell

Cómo borrar el historial de Bash en Linux y Mac

¿Cómo usar Linux Bash Shell dentro de Windows 10?

Cómo:¿Historial ilimitado de Bash/shell?