我試圖使用whiptail,因爲它是dialog的輕量級替代品,並且似乎在大多數系統中默認安裝(即,如果人們「忘記」或未安裝它,人們不必四處走動並安裝它默認)。 我在這裏查了一下question #1562666的幾個例子,但我正在尋找一個重定向輸出的替代方法,以便設置一個環境變量,而不是僅僅寫入磁盤。whiptail:如何將輸出重定向到環境變量?
例如,當我嘗試與對話,這個工作(我看到了對話框,以及環境變量設置):
result=$(dialog --output-fd 1 --inputbox "Enter some text" 10 30)
echo Result=$result
然而,這並不用鞭尾時,到位的工作對話框,因爲對話框永遠不會顯示。我必須把它重定向到一個磁盤文件,讀取它,例如:
result=$(tempfile) ; chmod go-rw $result
whiptail --inputbox "Enter some text" 10 30 2>$result
echo Result=$(cat $result)
rm $result
它的工作原理,我可以使用相同的臨時文件,從開始到結束(腳本結束時刪除它)。但是被迫僅僅爲了這個而使用磁盤,而不是將它全部保存在內存中(重定向到一個環境變量),感覺很尷尬。
所以我問:我忘了什麼 - 或者我真的必須在使用whiptail時使用磁盤?
非常感謝您的反饋。
好像每當鞭尾有其標準輸入/標準輸出重定向,它不顯示(是否用$(...)或... |)。 考慮到whiptail的行爲,您的解決方案看起來相當不錯。 順便說一句,在我的debian機器上,我有whiptail,但默認情況下沒有對話框,在opensuse上,我有對話框,並且在官方存儲庫中沒有現有的whiptail。 – Zeograd 2009-12-28 16:30:35
@Zeograd至少在RHEL whiptail進來「蠑螈」包。 – Kimvais 2009-12-28 16:34:50
對,thx Kimvais。 「zypper search whiptail」對我來說失敗了,即使信息說明它已經在。 – Zeograd 2009-12-28 19:33:13