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

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

スクリプトの開始は次のとおりです。

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

私は理解

  • $DISPLAY擬似端末に添付された値を保存します。
  • [ -z $DISPLAY ]$ DISPLAYに値があるか空の文字列かをテストします。

$DISPLAY値を保持する目的は何ですか?空の文字列がある場合の違いは何ですか?[ -z $DISPLAY ]スクリプトをさらに実行するのに真と偽を知ることが重要な理由は何ですか?

答え1

このスクリプトが何であれ、この$DISPLAY値を使用してX11環境で実行されていることを確認します($DISPLAYスクリプトがデスクトップ環境で実行されている場合はこの値が設定されます)。実際の価値にはまったく興味がありません。

  • X11で実行している場合DIALOGに設定すると、Xdialogダイアログボックスを表示するX11プログラムになります。

  • X11で実行されていない場合(ヘッドレスシステムやSSHセッションなど)、ダイアログボックスを表示する呪い(または少なくともテキストベース)プログラムにDIALOG設定されます。dialog

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

関連情報