Ich mochte Garyjohns Antwort mit RunningX, da es klug ist, schlechte, aber nicht leere DISPLAY-Variablen zu verwenden.
Aber ... ich würde gerne einen besseren machen. Ich benutze oft Bildschirmsitzungen. Ich könnte zu Hause eine Bildschirmsitzung starten, DISPLAY ist definiert. Dann, wenn ich von woanders hereinkomme, ist DISPLAY immer noch definiert und wird tatsächlich angezeigt ... zu Hause! Also ... dann werde ich '$ DISPLAY = exportieren'. Dies ist in Ordnung, aber da diese Antwort bereits geprüft wurde und zum Zeitpunkt der ersten Ausführung von .bashrc eine gültige DISPLAY-Variable gefunden wurde, wäre EDITOR immer noch auf gvim gesetzt.
Ich bin hierher gekommen, um nach einer Lösung für ein ähnliches Problem zu suchen. Ich wollte yelp für das Durchsuchen von X-GUI-Manpages verwenden, aber automatisch zum traditionellen man-Befehl zurückkehren, wenn ich X nicht verwende. Basierend auf dem, was ich hier gelesen habe, habe ich Folgendes gefunden:
man () {
if RunningX
then
yelp "man:$@";
else
/usr/bin/man "$@";
fi
}
Ich denke, dass man für das EDITOR-Problem Folgendes tun könnte:
EDITOR=vim
vim () {
if RunningX
then
gvim "$@";
else
vim "$@";
fi
}
Ich hätte das ohne die lange Geschichte gepostet, aber ich habe es nicht getestet. Ich betrachte mich als Bash-Neuling. Ich habe meinen 'Mannbefehl' getestet, das funktioniert! Ich verwende Emacs für meinen Editor, es führt eine eigene Überprüfung für X durch. Ich habe nicht einmal gvim installiert.
if [[ $DISPLAY ]]
für die Doppelklammer-Liebhaber …