在bash中创建zenity菜单

时间:2013-03-18 13:04:43

标签: linux bash menu options zenity

我有这段代码,但我不知道如何在菜单中添加更多选项?我需要再添加两个选项。我该怎么做? 为了实现这一点,它是否需要与我尝试为其创建GUI的原始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 disk space" 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 $

1 个答案:

答案 0 :(得分:0)

首先,一件好事不是直接从Linux命令行和Shell Scripting Bible中复制,如果您阅读该书中关于zenity和菜单的整个部分,您就会理解。

如果你采用这部分剧本

function 'function1' { 'code for doing function1'  
zenity --text-info --title "Logged in users" --filename=$temp --width 500 --    height 10  
}  

将其插入到相似的其他部分下面,这将声明函数被调用的内容以及它将执行的操作

然后使用这样的东西:

           "Function1*") 
          function1 ;; 

带有星号的函数将在菜单上显示,第二个函数指的是前一段代码,以了解要执行的代码。

希望这是有道理的