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

3

No início de um script, fica:

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

Eu entendo que

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

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

    
por sharkant 27.05.2017 / 19:44

1 resposta

6

Qualquer que seja este script, ele está usando o valor $DISPLAY para determinar se ele está sendo executado em um ambiente X11 ou não (se o script estiver sendo executado em um ambiente de área de trabalho, $DISPLAY será definido). Não se importa com o valor real.

  • Se estiver em execução no X11, define DIALOG para Xdialog , que presumivelmente é um programa X11 para exibir caixas de diálogo.

  • Se ele não estiver sendo executado no X11 (por exemplo, ele está em uma máquina sem cabeçalho ou em uma sessão SSH), ele define DIALOG para dialog , o que presumivelmente é uma maldição (ou pelo menos texto baseado) programa para exibir caixas de diálogo.

Mais tarde, o script pode usar $DIALOG para exibir uma caixa de diálogo apropriada para o usuário.

    
por 27.05.2017 / 19:49