LinuxのbashスクリプトがLinuxの真の強みであることは誰もが知っています。多くの場合、ユーザーとの対話を容易にするために、スクリプトにグラフィカルユーザーインターフェイス(GUI)を表示する必要があります。 GUIを使用すると、スクリプトがよりユーザーフレンドリーで美しくなります。
シェルスクリプトのGTKの場合、Linuxで利用できる多くのオプションとツールがあります。
この記事では、Zenityを使用してBashスクリプトでGUIダイアログを表示する方法を紹介します。
Zenityは、シェルスクリプトでシンプルなGUIを表示するためのオープンソースアプリケーションです。 GTK +ダイアログを表示することで、スクリプトをよりユーザーフレンドリーにします。 Zenityは、最新のシェルスクリプト用の便利なコマンドラインツールです。 Zenityは使いやすく、クロスプラットフォームのアプリケーションです。
root権限を持つsudoユーザー。
ZenityはGNOMEデスクトップの一部であり、デフォルトでは、ほとんどのLinuxディストリビューションにインストールされています。ターミナルで次のコマンドを実行すると、システムに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コマンドを使用して、基本的で優れたGUIメッセージダイアログを作成できます。
Zenityで使用できる4種類のメッセージダイアログ。
- 情報
- エラー
- 質問
- 警告
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
次のようなシェルスクリプトでZenity質問ダイアログを使用できます:
#/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 --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スクリプトをよりユーザーフレンドリーにする方法を学習しました。ご不明な点がございましたら、お気軽にお問い合わせください。