Bash

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

  • March 18, 2012

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

但是,現在 DCOP 已過時,並且由於我從 KDE 3.5.10 遷移到 XFCE,我認為將我的腳本從 KDialog+DCOP 轉換為 KDialog+DBUS 我遷移到 XFCE 進度對話框是一個好主意。

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

您可以使用對話實用程序。它可以在終端內部和外部工作。

要在 X 伺服器上獲取它,您可以使用它的xdialoggdialog/zenity變體。請注意,zenity 推薦用於 XFCE,因為它使用 GTK+。事實上,我認為 Kdialog 是 Xdialog 的 KDE 變體。

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

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

這是一個簡單的教程,其中包含有關可用的不同對話框的各種範例。還有一個關於zenity的很好的教程。

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

#!/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

引用自:https://unix.stackexchange.com/questions/34391