Wie wird die Umgebungsvariable basierend darauf festgelegt, ob eine GUI verfügbar ist?

7

Wie kann ich meine .bashrc so einrichten, dass sich der Wert einer Umgebungsvariablen ändert, je nachdem, ob die aktuelle Sitzung Zugriff auf das GUI- / Fenstersystem hat oder nicht?

Angenommen, ich habe eine Umgebungsvariable, die steuert, welches Diff-Programm mein VCS verwendet.

Wenn ich an der Maschine sitze, möchte ich ein GUI-Programm verwenden. Wenn ich jedoch eine Remoteverbindung über SSH herstelle, möchte ich, dass stattdessen automatisch ein textbasierter Terminal-Diff-Viewer verwendet wird.

Wie kann ich überprüfen, ob das Fenstersystem verfügbar ist oder nicht?

TM.
quelle

Antworten:

9

Sie können die $DISPLAYVariable überprüfen , um festzustellen, ob Sie sich auf einer x-Anzeige befinden. Wenn sie nicht leer ist, haben Sie eine Anzeige:

if [ -n "$DISPLAY" ]; then
    # run GUI program
else
    # run term program
fi

Ein schneller Test zeigte, dass dies sogar für X-Tunneling funktioniert.

Kevin
quelle
Vielen Dank! Ich wusste, dass ich schon einmal einen Weg gesehen hatte, konnte ihn einfach nirgendwo finden.
TM.