Bashスクリプト · 1 min read · Nov 10, 2025

BashスクリプトでZenityを使用してGUIダイアログを表示する方法

私たちは皆、LinuxのbashスクリプトがLinuxの本当の強みであることを知っています。しばしば、ユーザーとのインタラクションを容易にするために、スクリプト内でグラフィカルユーザーインターフェース(GUI)を表示したいと思います。GUIは、どのスクリプトもよりユーザーフレンドリーで美しくします。

シェルスクリプト用のGTKには、Linuxで利用できる多くのオプションとツールがあります。

この記事では、Zenityを使用してBashスクリプトでGUIダイアログを表示する方法を示します。

Zenityは、シェルスクリプトでシンプルなGUIを表示するためのオープンソースアプリケーションです。GTK+ダイアログを表示することで、スクリプトをよりユーザーフレンドリーにします。Zenityは、現代のシェルスクリプト用の便利なコマンドラインツールです。Zenityは使いやすく、クロスプラットフォームのアプリケーションです。

前提条件

sudoユーザーで、root権限を持っていること。

Zenityのインストール

ZenityはGNOMEデスクトップの一部であり、デフォルトでほとんどのLinuxディストリビューションにインストールされています。次のコマンドをターミナルに入力して、システムにZenityがインストールされているか確認できます。

zenity --version

システムにZenityがインストールされていない場合は、Aptdnf、または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には4種類のメッセージダイアログがあります。

  • 情報
  • エラー
  • 質問
  • 警告

1. 情報ダイアログボックス

次のコマンドをターミナルで実行することで、情報ダイアログボックスを作成できます。

zenity --info --text="ソフトウェアの更新が利用可能です。" --width=500

Bashスクリプトを使用して情報テキストダイアログを表示

2. エラーダイアログボックス

エラーダイアログボックスを表示するには、次のコマンドを実行します。

zenity --error --text="インストール中にエラーが発生しました" --title="エラー" --width=500 --width=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.textが削除されました" --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 "パッケージ" --list  --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 ZenityおよびZenity –helpを使用できます。

結論

上記のガイドでは、Zenityを使用してGUIダイアログを表示するbashスクリプトを書く方法を学び、Bashスクリプトをよりユーザーフレンドリーにする方法を学びました。質問があればお気軽にお尋ねください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。