Você pode usar a variável de ambiente $DISPLAY
como acionador dentro de uma condição if
. Geralmente, quando essa variável tem um valor, você pode executar aplicativos gráficos.
Veja um exemplo bash :
if [[ -z $DISPLAY ]]
then
nano
else
gedit
fi
O operador -z
retornará true quando o envvar $DISPLAY
estiver vazio e seu script for executado nano
; em todos os outros casos, ele será executado gedit
.
De acordo com este comentário de @ vurp0 :
On most modern Wayland desktops (like the default desktop in Fedora and Ubuntu),
$DISPLAY
is still set due to backwards compatibility (through XWayland), but for a more robust script it would be good to test for both$DISPLAY
and$WAYLAND_DISPLAY
to be sure.
Sugiro modificar a expressão de teste da seguinte maneira:
[[ -z ${DISPLAY}${WAYLAND_DISPLAY} ]]
Assim, os valores das duas variáveis serão concatenados em uma string comum, que será processada pelo operador -z
.
Referências: