웹사이트 검색

Zenity - 명령줄 및 쉘 스크립트에 그래픽(GTK+) 대화 상자 생성


GNU LinuxLinux라는 매우 강력한 커널을 기반으로 구축된 운영 체제입니다. Linux는 명령줄 작업으로 유명합니다. 일상적인 컴퓨팅과 데스크탑 컴퓨팅에 Linux가 등장하면서 nix는 더 이상 명령줄에 편향되지 않고 그래픽도 동일하며 그래픽 애플리케이션을 개발하는 것이 더 이상 어려운 작업이 아닙니다.

여기 이 글에서는 "Zenity"라는 GTK+ 애플리케이션을 사용하여 간단한 그래픽 대화 상자를 생성하고 실행하는 방법에 대해 설명합니다.

제니티란 무엇인가요?

Zenity는 명령줄과 쉘 스크립트를 사용하여 GTK+ 대화 상자를 표시하는 오픈 소스 및 크로스 플랫폼 애플리케이션입니다. 그래픽 상자의 쉘에/에서 정보를 요청하고 제시할 수 있습니다. 이 응용 프로그램을 사용하면 명령줄에서 그래픽 대화 상자를 만들고 사용자와 셸 간의 상호 작용을 매우 쉽게 만들 수 있습니다.

다른 대안도 있습니다,. 특히 복잡한 프로그래밍이 필요하지 않은 경우 Zenity의 단순성과 비교할 수 있는 것은 없습니다. 꼭 손에 넣어야 할 도구, Zenity.

제니티 기능

  1. 포스 소프트웨어
  2. 크로스 플랫폼 애플리케이션
  3. GTK+ 대화 상자 실행 허용
  4. 명령줄 도구
  5. 쉘 스크립팅 지원

유용성

  1. 쉬운 GUI 생성
  2. 다른 복잡한 도구보다 기능이 적음
  3. 쉘 스크립트가 GUI 사용자와 상호 작용할 수 있도록 합니다.
  4. 그래픽 사용자 상호 작용을 위한 간단한 대화 상자 생성이 가능합니다.

Zenity는 알려진 모든 주요 플랫폼에서 사용할 수 있고 GTK+ 라이브러리를 기반으로 하므로 Zenity 프로그램을 다른 플랫폼으로/에서 포팅할 수 있습니다.

Linux에 Zenity 설치

Zentity는 현재 대부분의 표준 Linux 배포판 저장소에 기본적으로 설치되거나 사용 가능합니다. 다음 명령을 실행하여 컴퓨터에 이(가) 설치되어 있는지 확인할 수 있습니다.

ravisaive@tecmint:~$ zenity --version 

3.8.0
ravisaive@tecmint:~$ whereis zenity 

zenity: /usr/bin/zenity /usr/bin/X11/zenity /usr/share/zenity /usr/share/man/man1/zenity.1.gz

설치되어 있지 않은 경우 아래와 같이 Apt 또는 Yum 명령을 사용하여 설치할 수 있습니다.

ravisaive@tecmint:~$ sudo apt-get install zenity		[on Debian based systems]

root@tecmint:~# yum install zenity				[on RedHat based systems]

또한 소스 파일에서 빌드할 수도 있으며, 다음 링크를 사용하여 최신 Zenity 소스 패키지(예: 현재 버전 3.8)를 다운로드할 수도 있습니다.

  1. http://ftp.gnome.org/pub/gnome/sources/zenity/

Zenity 기본 대화 상자

명령줄에서 직접 호출할 수 있는 Zenity의 기본 대화 상자 중 일부입니다.

1. 빠른 달력 대화상자는 어떻습니까?
root@tecmint:~# zenity --calendar

2. 오류 대화 상자
root@tecmint:~# zenity --error

3. 일반 텍스트 입력 대화 상자
root@tecmint:~# zenity --entry

4. 정보 대화 상자
root@tecmint:~# zenity --info

5. 질문 대화 상자
root@tecmint:~# zenity --question

6. 진행률 표시줄
root@tecmint:~# zenity --progress

7. 스케일 대화상자
root@tecmint:~# zenity --scale

8. 비밀번호 대화 상자
root@tecmint:~# zenity --password

9. 양식 대화 상자
root@tecmint:~# zenity --forms

10. 정보 대화 상자
root@tecmint:~# zenity --about

쉘 스크립트 생성 대화 상자

이제 여기서는 간단한 쉘 스크립트를 사용하여 Zenity Dialog 생성에 대해 논의하겠습니다. 위에서 했던 것처럼 셸에서 직접 Zenity 명령을 실행하여 단일 대화 상자를 만들 수 있지만 의미 있는 결과를 얻기 위해 두 개의 대화 상자를 연결할 수는 없습니다.

여러분의 입력을 받아 결과를 보여주는 대화형 대화 상자는 어떻습니까?

#!/bin/bash 
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry) 
zenity --info --title="Welcome" --text="Mr./Ms. $first" 
last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry) 
zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"

이를 'anything.sh'(일반적으로)에 저장하고 실행 가능하게 만드는 것을 잊지 마세요. anything.sh 파일에 755 권한을 설정하고 스크립트를 실행하세요.

root@tecmint:~# chmod 755 anything.sh 
root@tecmint:~# sh anything.sh

스크립트 설명 정보

전통적인 shebang, 일명 hashbang

#!/bin/bash

아래 줄에서 'first'는 변수이고 변수의 값은 런타임에 생성됩니다.

    1. '–entry'는 zenity가 텍스트 입력 상자를 생성하라는 요청을 받는다는 의미입니다.
    2. '– title='은 생성된 텍스트 상자의 제목을 정의합니다.
    3. '—text='는 텍스트 입력 상자에서 사용할 수 있는 텍스트를 정의합니다.
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry)

아래 스크립트 파일의 이 줄은 제목이 "Welcome"이고 텍스트가 "Mr./Ms.first"인 정보(-info) 대화 상자를 생성하기 위한 것입니다.

zenity --info --title="Welcome" --text="Mr./Ms. $first"

이 스크립트 줄은 새 변수 'last'가 정의된다는 점을 제외하면 스크립트의 두 번째 줄과 유사합니다.

last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry)

이 스크립트의 마지막 줄은 다시 스크립트의 세 번째 줄과 유사하며 '$first' 및 '$last' 변수를 모두 포함하는 정보 대화 상자를 생성합니다.

zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"

쉘 스크립트를 사용하여 사용자 정의 대화 상자를 만드는 방법에 대한 자세한 내용을 보려면 다음 참조 페이지 Zenity를 방문하세요.

  1. https://help.gnome.org/users/zenity/stable/

다음 글에서는 GUI 사용자 상호작용을 위해 Zenity를 더 많은 셸 스크립트와 통합할 것입니다. 그때까지 Tecmint에 계속 관심을 갖고 연결해 주세요. 댓글 섹션에 귀중한 피드백을 제공하는 것을 잊지 마세요.