Qual é o propósito de testar $DISPLAY com [ -z $DISPLAY ]?

Qual é o propósito de testar $DISPLAY com [ -z $DISPLAY ]?

No início de um script está:

if [ -z $DISPLAY ]
then
  DIALOG=dialog
else
  DIALOG=Xdialog
fi

Eu entendi aquilo

  • $DISPLAYcontém o valor ao qual um pseudo-terminal está anexado
  • [ -z $DISPLAY ]testa se $DISPLAY tem um valor ou é uma string vazia

Qual o propósito de $DISPLAYmanter um valor, o que é diferente quando ele possui uma string vazia? Por que seria crucial para a execução posterior do script saber se [ -z $DISPLAY ]é verdadeiro ou falso?

Responder1

Qualquer que seja esse script, ele está usando o $DISPLAYvalor para determinar se está sendo executado em um ambiente X11 ou não (se o script estiver sendo executado, por exemplo, em um ambiente de desktop, $DISPLAYserá definido). Ele não se importa com o valor real.

  • Se estiver rodando no X11, ele é definido DIALOGcomo Xdialog, que presumivelmente é um programa X11 para exibir caixas de diálogo.

  • Se não estiver rodando no X11 (por exemplo, estiver em uma máquina headless ou em uma sessão SSH), ele será definido DIALOGcomo dialog, que presumivelmente é um programa de maldições (ou pelo menos baseado em texto) para exibir caixas de diálogo.

Posteriormente, o script pode ser usado $DIALOGpara exibir uma caixa de diálogo apropriada para o usuário.

informação relacionada