Chúng ta đều biết rằng các tập lệnh bash Linux là một thế mạnh thực sự của Linux. Chúng ta thường muốn hiển thị giao diện người dùng đồ họa (GUI) trong các tập lệnh của mình để tương tác với người dùng dễ dàng hơn. GUI làm cho bất kỳ tập lệnh nào thân thiện với người dùng hơn và đẹp hơn.
Đối với GTK trong các tập lệnh shell, có nhiều tùy chọn và công cụ có sẵn trong Linux.
Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách sử dụng Zenity để hiển thị các hộp thoại GUI trong các tập lệnh Bash.
Zenity là một ứng dụng nguồn mở để hiển thị GUI đơn giản trong các tập lệnh shell. Nó làm cho các tập lệnh thân thiện với người dùng hơn bằng cách hiển thị các hộp thoại GTK+. Zenity là một công cụ dòng lệnh tiện dụng cho tập lệnh shell hiện đại. Zenity dễ sử dụng và là ứng dụng đa nền tảng.
Nếu Zenity chưa được cài đặt trên hệ thống của bạn, bạn có thể cài đặt bằng lệnh Apt, dnf hoặc pacman.
Đối với hệ thống chạy Ubuntu/Debian:
Đối với hệ thống chạy RedHat:
Đối với hệ thống chạy Arch:
Bạn có thể sử dụng tùy chọn ---title để chỉ định tiêu đề cho cửa sổ hộp thoại.
Bạn có thể sử dụng tùy chọn --window-icon để chỉ định biểu tượng sẽ được sử dụng làm biểu tượng cho Hộp thoại Zenity.
Không chỉ vậy, bạn có thể đặt chiều rộng và chiều cao cho Hộp thoại Zenity bằng cách đặt tùy chọn --width và --height trong lệnh Zenity.
Bằng cách sử dụng tùy chọn --timeout, bạn có thể đặt thời gian chờ cho hộp thoại, sau đó hộp thoại sẽ tự động đóng lại.
Bốn loại hộp thoại Thông báo có sẵn trong Zenity.
Bạn có thể sử dụng Zenity Question Dialog trong tập lệnh shell như sau:
Sau đây là một số hộp nhập:
Bạn cũng có thể thêm hộp kiểm với tùy chọn --list để chọn nhiều mục.
Lệnh bên dưới sẽ hiển thị thanh tiến trình tải xuống của bạn.
Để biết thêm tùy chọn tiến trình, hãy chạy lệnh sau vào thiết bị đầu cuối
Để biết thêm tùy chọn Zenity, bạn có thể sử dụng man Zenity và Zenity --help.
Đối với GTK trong các tập lệnh shell, có nhiều tùy chọn và công cụ có sẵn trong Linux.
Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách sử dụng Zenity để hiển thị các hộp thoại GUI trong các tập lệnh Bash.
Zenity là một ứng dụng nguồn mở để hiển thị GUI đơn giản trong các tập lệnh shell. Nó làm cho các tập lệnh thân thiện với người dùng hơn bằng cách hiển thị các hộp thoại GTK+. Zenity là một công cụ dòng lệnh tiện dụng cho tập lệnh shell hiện đại. Zenity dễ sử dụng và là ứng dụng đa nền tảng.
Điều kiện tiên quyết
Người dùng sudo có quyền root.Cài đặt Zenity
Zenity là một phần của màn hình nền GNOME và theo mặc định, nó được cài đặt trên hầu hết các bản phân phối Linux. Bạn có thể xác minh cài đặt Zenity trên hệ thống của mình bằng cách thực hiện lệnh sau vào thiết bị đầu cuối.
Mã:
zenity --version
Nếu Zenity chưa được cài đặt trên hệ thống của bạn, bạn có thể cài đặt bằng lệnh Apt, dnf hoặc pacman.
Đối với hệ thống chạy Ubuntu/Debian:
Mã:
sudo apt-get install zenity
Mã:
dnf install zenity
Mã:
pacman -S zenity
Tùy chọn chung của Zenity
Có một số tùy chọn chung có thể sử dụng độc lập với Zenity. Các tùy chọn chung là --title, --window-icon, --width, --height, --timeoutBạn có thể sử dụng tùy chọn ---title để chỉ định tiêu đề cho cửa sổ hộp thoại.
Bạn có thể sử dụng tùy chọn --window-icon để chỉ định biểu tượng sẽ được sử dụng làm biểu tượng cho Hộp thoại Zenity.
Không chỉ vậy, bạn có thể đặt chiều rộng và chiều cao cho Hộp thoại Zenity bằng cách đặt tùy chọn --width và --height trong lệnh Zenity.
Bằng cách sử dụng tùy chọn --timeout, bạn có thể đặt thời gian chờ cho hộp thoại, sau đó hộp thoại sẽ tự động đóng lại.
Hộp thông báo Zenity
Bạn có thể tạo một số hộp thoại thông báo GUI cơ bản và đẹp mắt bằng lệnh Zenity đơn giản từ thiết bị đầu cuối.Bốn loại hộp thoại Thông báo có sẵn trong Zenity.
- Thông tin
- Lỗi
- Câu hỏi
- Cảnh báo
1. Hộp thoại thông tin
Bạn có thể tạo Hộp thoại thông tin bằng cách chạy lệnh sau trong terminal:
Mã:
zenity --info --text="Bản cập nhật phần mềm khả dụng." --width=500
2. Hộp thoại lỗi
Thực hiện lệnh sau để hiển thị hộp thoại lỗi
Mã:
zenity --error --text="Lỗi trong quá trình cài đặt" --title="Lỗi" --width=500 --width=200
3. Hộp thoại câu hỏi
Bạn có thể dễ dàng yêu cầu trả lời câu hỏi Có hoặc Không bằng cách thực hiện lệnh sau:
Mã:
zenity --question --text="Bạn có muốn khởi động lại máy tính không?" --width=200
Bạn có thể sử dụng Zenity Question Dialog trong tập lệnh shell như sau:
Mã:
#/bin/bash
touch demo.txt
if zenity --question --title="Xác nhận xóa" --text="Bạn có chắc chắn muốn tệp demo.txt không?" --no-wrap
then
rm demo.txt
zenity --info --title="Thành công" --text="demo.text đã bị xóa" --no-wrap
fi
4. Hộp thoại cảnh báo
Mã:
zenity --warning --title="Có bản cập nhật" --text="Yêu cầu cập nhật hệ điều hành" --width=200
Thông báo
Bạn có thể hiển thị Thông báo bằng Zenity.
Mã:
zenity --notification --text "Chào buổi sáng"
Hộp nhập Zenity
Sử dụng Zenity, bạn có thể tạo các hộp thoại đơn giản lấy dữ liệu đầu vào từ người dùng và hiển thị dưới dạng đầu ra chuẩn.Sau đây là một số hộp nhập:
Lịch
Hộp thoại Lịch hiển thị lịch và trả về ngày do người dùng chọn dưới dạng đầu ra chuẩn.
Mã:
zenity --calendar
Mã:
Đầu ra:
17/04/21
Hộp thoại nhập văn bản
Bạn có thể sử dụng tùy chọn --entry để tạo hộp thoại nhập văn bản. Tùy chọn này rất hữu ích khi bạn muốn yêu cầu người dùng nhập một số văn bản.
Mã:
zenity --entry --title "Thông tin người dùng" --text "Vui lòng nhập tên của bạn"
Hộp thoại danh sách
Bạn có thể sử dụng tùy chọn --list để tạo hộp thoại nhiều cột, Tại đây, bạn cần nhập Dữ liệu cho hộp thoại danh sách theo từng cột, từng hàng. Bạn có thể sử dụng hộp kiểm hoặc hộp rediobox với hộp thoại danh sách như minh họa bên dưới:
Mã:
zenity --list --title "Chọn bộ xử lý" --radiolist --column "ID" --column="Tên" 1 AMD 2 Intel
Bạn cũng có thể thêm hộp kiểm với tùy chọn --list để chọn nhiều mục.
Mã:
zenity --list --title "Gói" --list --text "chọn các gói bạn muốn cài đặt" --checklist --column "id" --column "Tên" 1 "Google Chrome" 2 "VLC" 3 "Firefox" 4 "GIMP"
Mã:
Đầu ra
Google Chrome|VLC|Firefox
Hộp thoại chọn màu
Bạn có thể sử dụng tùy chọn --color-selection để lấy giá trị chọn màu từ người dùng.
Mã:
zenity --color-selection --show-palette
Hộp thoại Chọn tệp
Bạn có thể sử dụng tùy chọn --file-selection để chụp các tệp hoặc thư mục đã chọn làm đầu ra chuẩn. Bạn cũng có thể lưu tệp bằng tùy chọn --file-selection.
Mã:
zenity --file-selection --multiple --filename "/"
Hộp thoại Tiến trình
Bạn có thể tạo thanh tiến trình đẹp bằng tùy chọn --progress. Tùy chọn này hữu ích nhiều lần khi bạn muốn hiển thị thanh tiến trình hoàn thành ứng dụng hoặc tập lệnh của mình cho người dùng.Lệnh bên dưới sẽ hiển thị thanh tiến trình tải xuống của bạn.
Mã:
(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# Đang tải xuống ở \2\/giây, ETA \3/' | zenity --progress --title="Đang tải xuống tệp..." --percentage=1 --pulsate
Mã:
zenity --help-progress