📖 使用 dialog 建立互動式對話框

分類:基礎入門 | 作者:pake | 發布時間:2024-12-05 16:28

SUSE Linux Shell Script 基礎入門 - 使用 dialog 建立互動式對話框

dialog 是一個在 Linux Shell Script 中用來建立圖形化對話框(TUI - Text User Interface)的工具。透過 dialog,我們可以建立選單、輸入框、確認框、進度條等互動式介面,提升 Shell 腳本的可讀性與使用者體驗。

本指南將介紹如何在 SUSE Linux 上安裝 dialog,並撰寫簡單的 Shell 腳本來實作互動式對話框。


目錄

  1. 安裝 dialog
  2. 基本語法與範例
  3. 建立互動式選單
  4. 建立輸入框
  5. 建立確認框
  6. 建立進度條
  7. 綜合範例 - 互動式 Shell 選單
  8. 結語

安裝 dialog

在 SUSE Linux 上,使用 zypper 安裝 dialog

sudo zypper install dialog

安裝完成後,可以測試 dialog 是否可用:

dialog --msgbox "Hello, Dialog!" 10 30

若成功顯示彈出訊息框,代表安裝成功。


基本語法與範例

dialog 的基本語法如下:

dialog --<對話框類型> "訊息內容" 高度 寬度

範例:

dialog --msgbox "這是一個測試訊息框!" 10 40

這將彈出一個 10 行高、40 列寬的訊息框,按 Enter 可關閉。


建立互動式選單

選單可以讓使用者選擇不同選項,並根據選擇執行不同指令。

#!/bin/bash

dialog --menu "請選擇一個選項:" 15 50 3     1 "顯示日期"     2 "顯示系統資訊"     3 "退出" 2>menu_choice.txt

choice=$(<menu_choice.txt)

case $choice in
    1) date ;;
    2) uname -a ;;
    3) echo "退出程式" ;;
    *) echo "無效選擇" ;;
esac

rm -f menu_choice.txt

📌 說明:

執行:

chmod +x menu.sh
./menu.sh

建立輸入框

輸入框可讓使用者輸入文字,例如輸入使用者名稱。

#!/bin/bash

dialog --inputbox "請輸入您的姓名:" 10 40 2>name.txt

name=$(<name.txt)
echo "您好,$name!"

rm -f name.txt

建立確認框

確認框讓使用者選擇 Yes / No,例如詢問是否繼續執行腳本。

#!/bin/bash

dialog --yesno "您確定要繼續執行嗎?" 10 40

if [ $? -eq 0 ]; then
    echo "使用者選擇了 YES"
else
    echo "使用者選擇了 NO"
fi

📌 說明:


建立進度條

dialog 也可以顯示進度條,例如模擬程式運行過程。

#!/bin/bash

(
  for i in {1..100}; do
      echo $i
      sleep 0.1
  done
) | dialog --gauge "正在處理..." 10 50 0

📌 說明:


綜合範例 - 互動式 Shell 選單

以下是一個完整的互動式 Shell 腳本,使用 dialog 建立選單,讓使用者執行不同的系統指令。

#!/bin/bash

while true; do
    dialog --menu "選擇要執行的操作:" 15 50 4         1 "顯示當前時間"         2 "檢查磁碟使用情況"         3 "顯示登入使用者"         4 "退出" 2>choice.txt

    choice=$(<choice.txt)
    rm -f choice.txt

    case $choice in
        1) date | dialog --msgbox "$(cat)" 10 50 ;;
        2) df -h | dialog --msgbox "$(cat)" 15 70 ;;
        3) who | dialog --msgbox "$(cat)" 10 50 ;;
        4) clear; exit 0 ;;
        *) dialog --msgbox "無效選擇,請重新選擇!" 10 40 ;;
    esac
done

📌 使用步驟:

  1. 建立腳本:nano dialog_menu.sh
  2. 貼上程式碼,儲存後執行:
    chmod +x dialog_menu.sh
    ./dialog_menu.sh

結語

本指南介紹了如何在 SUSE Linux 上使用 dialog 建立互動式 Shell 腳本,包含選單、輸入框、確認框、進度條,並提供了一個完整的選單範例。適用於系統管理工具、自動化腳本、安裝程式等場景,讓命令列腳本更具互動性,提升使用者體驗與可讀性。

⬅ 上一篇 下一篇 ➡
🔙 返回 基礎入門 📚 返回教學列表 🏠 返回首頁