如何在 XFCE 中為 Bash 製作進度對話框?

如何在 XFCE 中為 Bash 製作進度對話框?

以前,在 KDE 中,這很簡單——我用步驟數調用 KDialog,作為回報我得到 DCOP 句柄,然後用該引用和步驟調用 dcop,進度對話框得到更新。

然而,現在 DCOP 已經過時了,而且自從我從 KDE 3.5.10 遷移到 XFCE 後,我認為最好將我的腳本從 KDialog+DCOP 轉換為 KDialog+DBUS,然後遷移到 XFCE 進度對話框。

那麼如何在 XFCE 中建置用於 Bash 的進度對話框呢?Bash 目的 = 我在 Bash 中執行一些計算,但進度以 GUI 方式顯示,就像桌面上漂亮的對話框一樣。

答案1

您可以使用對話公用事業。它可以同時工作內在和外在一個終端。

要在 X 伺服器上取得它,您可以使用它的對話框或者gdialog/zenity變體。請注意,XFCE 建議使用 zenity,因為它使用 GTK+。事實上,我認為 Kdialog 是 Xdialog 的 KDE 變體。

這是一個簡單的 Zenity 腳本,在 X 伺服器上運行,帶有是/否框:

DIALOG=zenity
$DIALOG --title " My first dialog" --clear \
--yesno "Hi, this is my first dialog" 10 30

這是一個簡單的教學有關可用的不同對話框的各種範例。而且還有一個很好的教程關於禪宗。

關於您的圖形進度對話框,有專門用於此目的的一個。這是文件的範例腳本:

#!/bin/sh
(
echo "10" ; sleep 1
echo "# Updating mail logs" ; sleep 1
echo "20" ; sleep 1
echo "# Resetting cron jobs" ; sleep 1
echo "50" ; sleep 1
echo "This line will just be ignored" ; sleep 1
echo "75" ; sleep 1
echo "# Rebooting system" ; sleep 1
echo "100" ; sleep 1
) |
zenity --progress \
  --title="Update System Logs" \
  --text="Scanning mail logs..." \
  --percentage=0

if [ "$?" = -1 ] ; then
        zenity --error \
          --text="Update canceled."
fi

相關內容