[ -z $DISPLAY ] を使用して $DISPLAY をテストする目的は何ですか?

[ -z $DISPLAY ] を使用して $DISPLAY をテストする目的は何ですか?

スクリプトの冒頭には次の記述があります:

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

という事は承知しています

  • $DISPLAY擬似端末が接続されている値を保持する
  • [ -z $DISPLAY ]$DISPLAY に値があるか、空の文字列であるかをテストします。

値を保持する目的は何ですか、空の文字列の場合と何が違うのですか? スクリプトの以降の実行で、 true か false$DISPLAYかを知ることが重要なのはなぜですか?[ -z $DISPLAY ]

答え1

このスクリプトが何であれ、値を使用して、$DISPLAYX11 環境で実行されているかどうかを判断します (スクリプトがデスクトップ環境などで実行されている場合は、$DISPLAY設定されます)。実際の値についてはまったく考慮されません。

  • X11 で実行されている場合は に設定されますDIALOGXdialogこれは、ダイアログ ボックスを表示するための X11 プログラムであると考えられます。

  • X11 で実行されていない場合 (たとえば、ヘッドレス マシン上または SSH セッション内) は に設定されます。DIALOGこれdialogは、ダイアログ ボックスを表示するための curses (または少なくともテキストベース) プログラムであると考えられます。

後で、スクリプトを使用して、$DIALOGユーザーに適したダイアログ ボックスを表示できます。

関連情報