웹사이트 검색

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


이 페이지에서

  1. 전제 조건
  2. Zenity 설치
  3. Zenity 일반 옵션
  4. Zenity 메시지 상자
    1. 1. 정보 대화 상자\n
    2. 2. 오류 대화 상자\n
    3. 3. 질문 대화 상자\n
    4. 4. 경고 대화 상자\n

    1. 달력
    2. 텍스트 입력 대화 상자\n
    3. 목록 대화 상자\n
    4. 색상 선택 대화 상자\n
    5. 파일 선택 대화 상자\n
    6. 진행 대화 상자\n

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

    쉘 스크립트의 GTK에는 Linux에서 사용할 수 있는 많은 옵션과 도구가 있습니다.

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

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

    전제 조건

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

    제니티 설치

    Zenity는 그놈 데스크탑의 일부이며 기본적으로 대부분의 Linux 배포판에 설치됩니다. 터미널에서 다음 명령을 실행하여 시스템에서 Zenity 설치를 확인할 수 있습니다.

    zenity --version


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

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

    sudo apt-get install zenity

    RedHat 기반 시스템의 경우:

    dnf install zenity

    아치 기반 시스템의 경우:

    pacman -S zenity

    제니티 일반 옵션

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

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

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

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

    --timeout 옵션을 사용하여 대화 상자가 자동으로 닫힌 후 대화 시간 제한을 설정할 수 있습니다.

    제니티 메시지 박스

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

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

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

    1. 정보 대화 상자

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

    zenity --info --text="Software Update Available." --width=500

    2. 오류 대화 상자

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

    zenity --error --text="Error In Installation" --title="Error" --width=500 --width=200

    3. 질문 대화 상자

    다음 명령을 실행하여 아무 질문 없이 쉽게 예를 요청할 수 있습니다.

    zenity --question --text="Do you want to reboot pc?" --width=200
    #/bin/bash
    touch demo.txt
    if zenity --question --title="Confirm deletion" --text="Are you sure you want to demo.txt file?" --no-wrap
        then
        rm demo.txt
        zenity --info --title="Success" --text="demo.text was removed" --no-wrap
    fi

    4. 경고 대화 상자

    zenity --warning --title="Update Available" --text="OS Update required" --width=200

    공고

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

    zenity --notification --text "Good Morning"

    Zenity 입력 상자

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

    다음은 몇 가지 입력 상자입니다.

    달력

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

    zenity --calendar
    Output:
    17/04/21

    텍스트 입력 대화상자

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

    zenity --entry --title "User Info" --text "Please enter your name"

    목록 대화상자

    --list 옵션을 사용하여 다중 열 대화 상자를 만들 수 있습니다. 여기에서 열별로, 행별로 목록 대화 상자에 대한 데이터를 입력해야 합니다. 아래와 같이 목록 대화 상자와 함께 확인란 또는 rediobox를 사용할 수 있습니다.

    zenity --list  --title "Choose Processor" --radiolist  --column "ID" --column="Name" 1 AMD 2 Intel

    다중 선택을 위해 --list 옵션을 사용하여 확인란을 제공할 수도 있습니다.

    zenity --list --title "Packages" --list  --text "select packages you want to install" --checklist --column "id"  --column "Name" 1 "Google Chrome" 2 "VLC" 3 "Firefox" 4 "GIMP"
    Output
    Google Chrome|VLC|Firefox

    색상 선택 대화상자

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

    zenity --color-selection --show-palette

    파일 선택 대화상자

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

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

    진행 대화상자

    --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# Downloading at \2\/s, ETA \3/' | zenity --progress --title="Downloading File..." --percentage=1 --pulsate

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

    zenity --help-progress

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

    결론

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