Background-Process

對話框 - 在後台繼續

  • December 4, 2013

我安裝了這個程序:

http://invisible-island.net/dialog/dialog.html

現在我想使用這個對話框:

http://invisible-island.net/dialog/dialog-figures.html#demo_gauge

dialog --gauge 'Checking permissions' 20 60

它工作正常,但問題是 bash 腳本在此對話框關閉 (CTRL + C) 之前不會繼續。

但我希望我的 shell 腳本繼續執行,並通過對話框顯示狀態。

這可能嗎?

編輯#1

status="Initializing"    
(echo 1
sleep 1
status="Loading"
echo 30
sleep 1
echo 90
sleep 1
echo 100
) | dialog --gauge $status 10 40

您需要通過標準輸入將百分比輸入到儀表中。試試這個看看它是如何工作的:

for i in $(seq 1 100); do echo $i; sleep 0.1; done | \
 dialog --gauge "Example" 10 50

因此,在您的情況下,只需在子外殼中完成您的工作,不時輸出一個百分比數字,然後將其通過管道傳輸到dialog. 像這樣的東西:

(echo 1
sleep 1
echo 30
sleep 1
echo 90
sleep 1
echo 100
) | dialog --gauge "Working hard..." 10 40

(其中 eachsleep 1代表一些真實的工作,當然……)。

**編輯:**更改文本

要更改文本,您輸出XXX一個數字,然後是新文本,然後XXX再輸出。例子:

(echo 30
sleep 1
echo XXX; echo 60; echo "New text"; echo XXX
sleep 1
echo 100
) | dialog --gauge "Working hard..." 10 40

您需要閱讀dialog手冊頁;一切都在那裡解釋。

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