Gostei da resposta de garyjohn usando o RunningX, pois é inteligente em relação a variáveis de exibição ruins, mas não vazias.
Mas .. eu gostaria de ir um melhor. Costumo usar sessões de tela. Posso iniciar uma sessão de tela em casa, DISPLAY está definido. Então, eu ssh de outro lugar, DISPLAY ainda está definido e na verdade é exibido ... em casa! Então .. então irei 'exportar $ DISPLAY ='. Isso é bom, mas como essa resposta já foi verificada e encontrou uma variável DISPLAY válida no momento.
Eu vim aqui procurando uma solução para um problema semelhante. Queria usar o yelp para navegar na página de manual do X-GUI, mas desative automaticamente o comando man tradicional quando não estiver usando o X. Com base no que li aqui, vim com isso:
man () {
if RunningX
then
yelp "man:$@";
else
/usr/bin/man "$@";
fi
}
Estou pensando que, para o problema do EDITOR, alguém poderia fazer algo como segue:
EDITOR=vim
vim () {
if RunningX
then
gvim "$@";
else
vim "$@";
fi
}
Eu teria acabado de postar que sem a longa história, mas ainda não a testei. Eu me considero um novato bash. Eu testei o meu 'comando man', que funciona! No entanto, estou usando o emacs para o meu editor, ele faz sua própria verificação para o X. Eu nem tenho o gvim instalado.
if [[ $DISPLAY ]]
para os aficionados por colchete duplo …