想必大家都知道,在shell腳本中,zenity表現(xiàn)良好。但是,zenity沒有沿襲dialog和kdialog中所采用的選項(xiàng)慣例,因此,將已有的交互式腳本遷移到zenity上要花點(diǎn)工夫。 在將系統(tǒng)管理菜單從kdialog遷移到zenity的過程中,需要對(duì)部件定義做大量的工作。那么在shell腳本中如何使用zenity 呢?下面請(qǐng)看南昌網(wǎng)絡(luò)公司百恒網(wǎng)絡(luò)為大家做個(gè)介紹:
$cat menu5
#!/bin/bash
# using zenity to create a menu
temp=$(mktemp -t temp.XXXXXX)
temp2=$(mktemp -t temp2.XXXXXX)
function diskspace {
df -k > $temp
zenity --text-info --title "Disk space" --filename=$temp
--width 750 --height 10
}
function whoseon {
who > $temp
zenity --text-info --title "Logged in users" --filename=$temp
--width 500 --height 10
}
function memusage {
cat /proc/meminfo > $temp
zenity --text-info --title "Memory usage" --filename=$temp
--width 300 --height 500
}
while [ 1 ]
do
zenity --list --radiolist --title "Sys Admin Menu"
--column "Select" --column "Menu Item" FALSE "Display diskspace" FALSE "Display users"
FALSE "Display memory usage" FALSE "Exit" > $temp2
if [ $? -eq 1 ]
then
break
fi
selection=$(cat $temp2)
case $selection in
"Display disk space")
diskspace ;;
"Display users")
whoseon ;;
"Display memory usage")
memusage ;;
Exit)
break ;;
*)
zenity --info "Sorry, invalid selection"
esac
done
$
由于zenity并不支持菜單對(duì)話窗口,我們改用單選列表窗口來作為主菜單,如下圖所示。 該單選列表用了兩列,每列都有一個(gè)標(biāo)題:第一列包含用于選擇的單選按鈕,第二列是選項(xiàng)文本。單選列表也不用選項(xiàng)里的標(biāo)號(hào)。當(dāng)選定一個(gè)選項(xiàng)時(shí),該選項(xiàng)的所有文本都會(huì)返回到 STDOUT。這會(huì)讓case命令的內(nèi)容豐富一些。必須在case中使用選項(xiàng)的全文本。如果文本中有任何空格,你需要給文本加上引號(hào)。
使用zenity包,你還可以給GNOME桌面上的交互式shell腳本帶來一種Windows式的體驗(yàn)。 對(duì)于在腳本中使用zenity 的方法你是否掌握了呢?如果還有哪些不太明白的地方,可隨時(shí)來電和我們聯(lián)系,百恒網(wǎng)絡(luò)專業(yè)為您解答!此外,如有需要南昌網(wǎng)站建設(shè)、APP開發(fā)、微信開發(fā)等服務(wù)的朋友,可隨時(shí)來電和我們聯(lián)系,我們隨時(shí)為你效勞!