[ -z $DISPLAY ]를 사용하여 $DISPLAY를 테스트하는 목적은 무엇입니까?

[ -z $DISPLAY ]를 사용하여 $DISPLAY를 테스트하는 목적은 무엇입니까?

스크립트의 맨 처음에는 다음이 표시됩니다.

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

나는 이해

  • $DISPLAY의사 터미널 1이 연결된 값을 보유합니다.
  • [ -z $DISPLAY ]$DISPLAY에 값이 있는지 또는 빈 문자열인지 테스트합니다.

값을 유지 하는 목적은 무엇이며 $DISPLAY, 빈 문자열이 있을 때 다른 점은 무엇입니까? 스크립트를 추가로 실행할 때 [ -z $DISPLAY ]true인지 false 인지 아는 것이 왜 중요한가요 ?

답변1

$DISPLAY이 스크립트가 무엇이든 X11 환경에서 실행 중인지 여부를 결정하기 위해 값을 사용합니다 (예: 데스크톱 환경에서 스크립트가 실행 중인 경우 $DISPLAY설정됨). 실제 가치에는 전혀 관심이 없습니다.

  • X11에서 실행 중인 경우 DIALOG로 설정되는데 Xdialog, 이는 아마도 대화 상자를 표시하기 위한 X11 프로그램일 것입니다.

  • X11에서 실행되지 않는 경우(예: 헤드리스 시스템 또는 SSH 세션에서) DIALOG로 설정됩니다 dialog. 이는 아마도 대화 상자를 표시하기 위한 저주(또는 적어도 텍스트 기반) 프로그램일 것입니다.

나중에 스크립트를 사용하여 $DIALOG사용자에게 적합한 대화 상자를 표시할 수 있습니다.

관련 정보