Saya menyukai jawaban garyjohn menggunakan RunningX karena pintar tentang variabel DISPLAY yang buruk tetapi tidak kosong.
Tapi .. saya ingin yang lebih baik. Saya sering menggunakan sesi layar. Saya mungkin memulai sesi layar di rumah, DISPLAY didefinisikan. Kemudian, saya ssh dari tempat lain, DISPLAY masih didefinisikan dan itu benar-benar menampilkan ... di rumah! Jadi .. maka saya akan 'mengekspor $ DISPLAY ='. Ini bagus tapi karena jawaban itu sudah diperiksa, dan menemukan variabel DISPLAY yang valid pada saat itu. Bashrc awalnya menjalankan EDITOR masih akan diatur ke gvim.
Saya datang ke sini mencari solusi untuk masalah yang sama, saya ingin menggunakan yelp untuk browsing manual X-GUI tetapi secara otomatis drop down ke perintah man tradisional ketika tidak menggunakan X. Berdasarkan apa yang saya baca di sini, saya datang dengan ini:
man () {
if RunningX
then
yelp "man:$@";
else
/usr/bin/man "$@";
fi
}
Saya berpikir bahwa untuk masalah EDITOR orang dapat melakukan sesuatu seperti berikut:
EDITOR=vim
vim () {
if RunningX
then
gvim "$@";
else
vim "$@";
fi
}
Saya hanya akan memposting bahwa tanpa cerita panjang tapi saya belum mengujinya. Saya menganggap diri saya seorang pemula bash. Saya menguji 'perintah manusia' saya, itu berhasil! Saya menggunakan emacs untuk editor saya, ia melakukan pengecekan sendiri untuk X. Saya bahkan tidak menginstal gvim.
if [[ $DISPLAY ]]
untuk penggemar braket ganda …