十年专注于品牌网站建设 十年专注于品牌网站建设,低调、高逼格、有情怀的网络应用服务商!
南昌百恒网络微信公众号 扫一扫关注
小程序
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络微信小程序

百恒网络

南昌百恒网络

在shell脚本中如何使用zenity?

百恒网络 2017-08-30 250

想必大家都知道,在shell脚本中,zenity表现良好。但是,zenity没有沿袭dialog和kdialog中所采用的选项惯例,因此,将已有的交互式脚本迁移到zenity上要花点工夫。 在将系统管理菜单从kdialog迁移到zenity的过程中,需要对部件定义做大量的工作。那么在shell脚本中如何使用zenity 呢?下面请看南昌网络公司百恒网络为大家做个介绍:

$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并不支持菜单对话窗口,我们改用单选列表窗口来作为主菜单,如下图所示。 该单选列表用了两列,每列都有一个标题:第一列包含用于选择的单选按钮,第二列是选项文本。单选列表也不用选项里的标号。当选定一个选项时,该选项的所有文本都会返回到 STDOUT。这会让case命令的内容丰富一些。必须在case中使用选项的全文本。如果文本中有任何空格,你需要给文本加上引号。

使用zenity包,你还可以给GNOME桌面上的交互式shell脚本带来一种Windows式的体验。 对于在脚本中使用zenity 的方法你是否掌握了呢?如果还有哪些不太明白的地方,可随时来电和我们联系,百恒网络专业为您解答!此外,如有需要南昌网站建设、APP开发、微信开发等服务的朋友,可随时来电和我们联系,我们随时为你效劳!


400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络小程序

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
售后服务 售后服务
 
备案专线 备案专线
 
×