Мені сподобалась відповідь garyjohn, використовуючи RunningX, оскільки вона розумна щодо поганих, але не порожніх змінних DISPLAY.
Але .. Я хотів би піти на один кращий. Я часто використовую екранні сеанси. Я можу почати екранне сеанс вдома, визначено DISPLAY. Потім, я заходжу з іншого місця, DISPLAY все ще визначений, і він фактично відображається ... вдома! Отже .. тоді я експортую $ DISPLAY = '. Це добре, але оскільки ця відповідь вже перевірена і знайшла дійсну змінну DISPLAY на той час .bashrc спочатку запускав EDITOR все одно буде встановлений у gvim.
Я прийшов сюди, шукаючи рішення подібної проблеми, хотів використати yelp для перегляду сторінок X-GUI, але автоматично перейшов до традиційної команди man, коли не використовує X. На основі прочитаного тут я придумав це:
man () {
if RunningX
then
yelp "man:$@";
else
/usr/bin/man "$@";
fi
}
Я думаю, що для проблеми EDITOR можна зробити щось на зразок наступного:
EDITOR=vim
vim () {
if RunningX
then
gvim "$@";
else
vim "$@";
fi
}
Я щойно опублікував цю без оповідання, але я не перевіряв її. Я вважаю себе новачком-баш. Я перевірив свою команду man, яка працює! Я використовую emacs для мого редактора, але це перевірка на X. Я навіть не встановив gvim.
if [[ $DISPLAY ]]
для прихильників подвійної дужки …