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がインストールされていない場合は、Apt、dnf、またはpacmanコマンドを使用してインストールできます。
Ubuntu/Debianベースのシステムの場合:
sudo apt-get install zenityRedHatベースのシステムの場合:
dnf install zenityArchベースのシステムの場合:
pacman -S zenityZenityの一般オプション
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
2. エラーダイアログボックス
エラーダイアログボックスを表示するには、次のコマンドを実行します。
zenity --error --text="インストール中にエラーが発生しました" --title="エラー" --width=500 --width=200
3. 質問ダイアログボックス
次のコマンドを実行することで、はいまたはいいえの質問を簡単に尋ねることができます。
zenity --question --text="PCを再起動しますか?" --width=200
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
fi4. 警告ダイアログボックス
zenity --warning --title="更新が利用可能" --text="OSの更新が必要です" --width=200通知
Zenityを使用して通知を表示できます。
zenity --notification --text "おはようございます"Zenity入力ボックス
Zenityを使用すると、ユーザーからの入力を受け取り、それを標準出力として表示するシンプルなダイアログボックスを作成できます。
以下は、いくつかの入力ボックスです。
カレンダー
カレンダーダイアログボックスはカレンダーを表示し、ユーザーが選択した日付を標準出力として返します。
zenity --calendar出力:
17/04/21
テキストエントリーダイアログ
–entryオプションを使用して、テキストエントリーダイアログを作成できます。これは、ユーザーにテキストを入力させたいときに非常に便利です。
zenity --entry --title "ユーザー情報" --text "名前を入力してください"リストダイアログ
–listオプションを使用して、マルチカラムダイアログを作成できます。ここでは、リストダイアログの列ごとにデータを行ごとに入力する必要があります。以下のように、リストダイアログボックスにチェックボックスまたはラジオボックスを使用できます。
zenity --list --title "プロセッサを選択" --radiolist --column "ID" --column="名前" 1 AMD 2 Intel
複数選択のために–listオプションにチェックボックスを与えることもできます。

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ファイル選択ダイアログ
–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# ダウンロード中の\2\/s, ETA \3/' | zenity --progress --title="ファイルをダウンロード中..." --percentage=1 --pulsateより多くのプログレスオプションについては、次のコマンドをターミナルで実行してください。
zenity --help-progressZenityの詳細オプションについては、man ZenityおよびZenity –helpを使用できます。
結論
上記のガイドでは、Zenityを使用してGUIダイアログを表示するbashスクリプトを書く方法を学び、Bashスクリプトをよりユーザーフレンドリーにする方法を学びました。質問があればお気軽にお尋ねください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。

