在bash中创建zenity菜单

问题描述 投票:-1回答:1

我有这个代码,但我不知道如何在菜单中添加更多选项?我需要再添加两个选项。我该怎么做?为了实现这一点,它是否需要与我尝试为其创建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 $
linux bash menu options zenity
1个回答
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 ;; 

带有星号的函数将在菜单上显示,第二个函数引用前一段代码来知道要执行的代码。

希望这是有道理的

© www.soinside.com 2019 - 2024. All rights reserved.