스크립트 · 3 min read · Nov 10, 2025

Bash 스크립트에서 Zenity를 사용하여 GUI 대화 상자를 표시하는 방법

우리는 모두 리눅스 bash 스크립트가 리눅스의 진정한 강점이라는 것을 알고 있습니다. 종종 우리는 사용자와의 상호작용을 쉽게 하기 위해 스크립트에서 그래픽 사용자 인터페이스(GUI)를 표시하고 싶습니다. GUI는 모든 스크립트를 더 사용자 친화적이고 아름답게 만듭니다.

셸 스크립트에서 GTK를 사용하기 위해 리눅스에는 많은 옵션과 도구가 있습니다.

이 기사에서는 Zenity를 사용하여 Bash 스크립트에서 GUI 대화 상자를 표시하는 방법을 보여드리겠습니다.

Zenity는 셸 스크립트에서 간단한 GUI를 표시하기 위한 오픈 소스 애플리케이션입니다. GTK+ 대화 상자를 표시하여 스크립트를 더 사용자 친화적으로 만듭니다. Zenity는 현대 셸 스크립팅을 위한 유용한 명령줄 도구입니다. Zenity는 사용하기 쉽고 크로스 플랫폼 애플리케이션입니다.

전제 조건

루트 권한이 있는 sudo 사용자.

Zenity 설치

Zenity는 GNOME 데스크탑의 일부이며 기본적으로 대부분의 리눅스 배포판에 설치되어 있습니다. 터미널에 다음 명령을 실행하여 시스템에 Zenity가 설치되어 있는지 확인할 수 있습니다.

zenity --version

시스템에 Zenity가 설치되어 있지 않다면 Apt, dnf 또는 pacman 명령을 사용하여 설치할 수 있습니다.

Ubuntu/Debian 기반 시스템의 경우:

sudo apt-get install zenity

RedHat 기반 시스템의 경우:

dnf install zenity

Arch 기반 시스템의 경우:

pacman -S zenity

Zenity 일반 옵션

Zenity와 함께 독립적으로 사용할 수 있는 일반 옵션이 있습니다. 일반 옵션은 –title, –window-icon, –width, –height, –timeout입니다.

—title 옵션을 사용하여 대화 상자 창의 제목을 지정할 수 있습니다.

–window-icon 옵션을 사용하여 Zenity 대화 상자에 사용할 아이콘을 지정할 수 있습니다.

뿐만 아니라 Zenity 명령에서 –width 및 –height 옵션을 설정하여 Zenity 대화 상자의 너비와 높이를 설정할 수 있습니다.

–timeout 옵션을 사용하여 대화 상자의 타임아웃을 설정할 수 있으며, 그 이후에는 대화 상자가 자동으로 닫힙니다.

Zenity 메시지 상자

터미널에서 간단한 Zenity 명령을 사용하여 기본적이고 멋진 GUI 메시지 대화 상자를 만들 수 있습니다.

Zenity에서 사용할 수 있는 네 가지 유형의 메시지 대화 상자가 있습니다.

  • 정보
  • 오류
  • 질문
  • 경고

1. 정보 대화 상자

터미널에서 다음 명령을 실행하여 정보 대화 상자를 만들 수 있습니다:

zenity --info --text="소프트웨어 업데이트 가능." --width=500

Bash 스크립트를 사용하여 정보 텍스트 대화 상자 표시

2. 오류 대화 상자

오류 대화 상자를 표시하려면 다음 명령을 실행하십시오.

zenity --error --text="설치 중 오류" --title="오류" --width=500 --height=200

Bash 스크립트를 사용하여 오류 대화 상자 표시

3. 질문 대화 상자

다음 명령을 실행하여 예 또는 아니오 질문을 쉽게 할 수 있습니다:

zenity --question --text="PC를 재부팅하시겠습니까?" --width=200

Bash의 대화 상자
셸 스크립트에서 Zenity 질문 대화 상자를 다음과 같이 사용할 수 있습니다:

#/bin/bash  
touch demo.txt  
if zenity --question --title="삭제 확인" --text="demo.txt 파일을 정말 삭제하시겠습니까?" --no-wrap  
    then  
    rm demo.txt  
    zenity --info --title="성공" --text="demo.txt가 삭제되었습니다" --no-wrap  
fi

4. 경고 대화 상자

zenity --warning --title="업데이트 가능" --text="OS 업데이트 필요" --width=200

Bash 경고 대화 상자 표시

알림

Zenity를 사용하여 알림을 표시할 수 있습니다.

zenity --notification --text "좋은 아침"

Zenity 입력 상자

Zenity를 사용하여 사용자로부터 입력을 받고 이를 표준 출력으로 표시하는 간단한 대화 상자 상자를 만들 수 있습니다.

여기 몇 가지 입력 상자가 있습니다:

달력

달력 대화 상자는 달력을 표시하고 사용자가 선택한 날짜를 표준 출력으로 반환합니다.

zenity --calendar
출력:  
17/04/21

Bash 스크립트에서 달력 입력

텍스트 입력 대화 상자

–entry 옵션을 사용하여 텍스트 입력 대화 상자를 만들 수 있습니다. 사용자가 텍스트를 입력하도록 요청할 때 매우 유용합니다.

zenity --entry --title "사용자 정보" --text "이름을 입력하세요"

목록 대화 상자

–list 옵션을 사용하여 다중 열 대화 상자를 만들 수 있습니다. 여기서는 목록 대화 상자 열에 대한 데이터를 열별로, 행별로 입력해야 합니다. 아래와 같이 목록 대화 상자에 체크박스 또는 라디오 박스를 사용할 수 있습니다:

zenity --list  --title "프로세서 선택" --radiolist  --column "ID" --column="이름" 1 AMD 2 Intel

목록 대화 상자

여러 선택을 위해 –list 옵션과 함께 체크박스를 제공할 수도 있습니다.

Bash의 체크박스 옵션

zenity --list --title "패키지" --text "설치할 패키지를 선택하세요" --checklist --column "id"  --column "이름" 1 "Google Chrome" 2 "VLC" 3 "Firefox" 4 "GIMP"
출력  
Google Chrome|VLC|Firefox

색상 선택 대화 상자

–color-selection 옵션을 사용하여 사용자로부터 색상 선택 값을 받을 수 있습니다.

zenity --color-selection --show-palette

Bash 스크립트 색상 선택기

파일 선택 대화 상자

–file-selection 옵션을 사용하여 선택한 파일이나 디렉토리를 표준 출력으로 캡처할 수 있습니다. –file-selection 옵션을 사용하여 파일을 저장할 수도 있습니다.

zenity --file-selection --multiple --filename "/"

Bash에서 파일 선택 상자 열기

진행 상황 대화 상자

–progress 옵션을 사용하여 멋진 진행률 표시줄을 만들 수 있습니다. 이는 사용자가 애플리케이션이나 스크립트의 완료 진행률 표시줄을 보여주고 싶을 때 유용합니다.

아래 명령은 다운로드 진행률 표시줄을 보여줍니다.

(wget -r  --no-parent patch -A.tar.gz http://157.245.99.119/latest/ -P /tmp 2>&1 ) | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9.]+\) \(.*\)/\1\n# 다운로드 중 \2\/s, ETA \3/' | zenity --progress --title="파일 다운로드 중..." --percentage=1 --pulsate

더 많은 진행 옵션을 보려면 터미널에 다음 명령을 실행하십시오.

zenity --help-progress

더 많은 Zenity 옵션을 보려면 man ZenityZenity –help를 사용할 수 있습니다.

결론

위 가이드에서는 Zenity를 사용하여 GUI 대화 상자를 표시하는 Bash 스크립트를 작성하는 방법을 배웠습니다. Bash 스크립트를 더 사용자 친화적으로 만들 수 있습니다. 질문이 있으면 언제든지 문의해 주세요.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.