📖 Dialog腳本檔撰寫

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

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

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

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


目錄


安裝 dialog

在 Fedora 上,安裝 dialog 工具:

sudo dnf install -y 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=$(cat 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=$(cat 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=$(cat 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

這個腳本允許使用者透過 TUI 選單 執行不同的 Linux 指令,例如查看時間、檢查磁碟、顯示使用者,最後可選擇退出。


結語

本指南介紹了 如何在 Fedora 上使用 dialog 建立互動式 Shell Script,包含 選單、輸入框、確認框、進度條,並提供了一個 完整的選單範例

🔹 適用場景

dialog 可以讓 命令列腳本更具互動性,提升 使用者體驗與可讀性

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