Podobała mi się odpowiedź garyjohna przy użyciu RunningX, ponieważ jest mądra o złych, ale niepustych zmiennych DISPLAY.
Ale .. Chciałbym wybrać jedną lepszą. Często używam sesji ekranowych. Mogę rozpocząć sesję ekranową w domu, DISPLAY jest zdefiniowany. Następnie wysyłam wiadomość z innego miejsca, WYŚWIETLACZ jest nadal zdefiniowany i faktycznie wyświetla ... w domu! Więc .. wtedy „wyeksportuję $ DISPLAY =”. Jest w porządku, ale ponieważ ta odpowiedź jest już sprawdzona i znalazła prawidłową zmienną DISPLAY w momencie, gdy .bashrc początkowo uruchomił EDYTOR, nadal byłby ustawiony na gvim.
Przybyłem tutaj, szukając rozwiązania podobnego problemu, chciałem użyć yelp do przeglądania strony X-GUI, ale automatycznie zejdę do tradycyjnego polecenia man, gdy nie używam X. Na podstawie tego, co tu przeczytałem, wymyśliłem:
man () {
if RunningX
then
yelp "man:$@";
else
/usr/bin/man "$@";
fi
}
Myślę, że w przypadku problemu EDYTORA można zrobić coś takiego:
EDITOR=vim
vim () {
if RunningX
then
gvim "$@";
else
vim "$@";
fi
}
Właśnie opublikowałbym tę historię bez długiej historii, ale jej nie przetestowałem. Uważam się za nowicjusza. Przetestowałem moją „komendę człowieka”, która działa! Używam emacsa do mojego edytora, sam sprawdza X. Nie mam nawet zainstalowanego gvima.
if [[ $DISPLAY ]]
dla miłośników podwójnego przedziału …