十三年专注于网站建设与互联网应用开发,低调、有情怀的网络应用服务商!
南昌百恒科技微信公众号 扫一扫关注
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒科技微信公众号

介绍Linux系统中dialog命令的使用方法

百恒 2017-08-11 16:26:41 4095
       在脚本中使用dialog命令不过就是动动手的事。 但是,江西网络公司小编要提醒大家以下两点注意事项:
       1、如果有Cancel或No按钮,检查dialog命令的退出状态码;
       2、重定向STDERR来获得输出值。
       如果遵循了这两个规则,立刻就能够拥有具备专业范儿的交互式脚本。为了更好的让大家有更深入的了解,小编在这里给大家举了一个例子,它详细地介绍了使用dialog部件来生成系统管理菜单的过程,请看以下内容。
       $ cat menu3
       #!/bin/bash
       # using dialog to create a menu
       temp=$(mktemp -t test.XXXXXX)
       temp2=$(mktemp -t test2.XXXXXX)
       function diskspace {
       df -k > $temp
       dialog --textbox $temp 20 60
       }
       function whoseon {
       who > $temp
       dialog --textbox $temp 20 50
       }
       function memusage {
       cat /proc/meminfo > $temp
       dialog --textbox $temp 20 50
       }
       while [ 1 ]
       do
       dialog --menu "Sys Admin Menu" 20 30 10 1 "Display disk space" 2
       "Display users" 3 "Display memory usage" 0 "Exit" 2> $temp2
       if [ $? -eq 1 ]
       then
       break
       fi
       selection=$(cat $temp2)
       case $selection in
       1)
       diskspace ;;
       2)
       whoseon ;;
       3)
       memusage ;;
       0)
       break ;;
       *)
       dialog --msgbox "Sorry, invalid selection" 10 30
       esac
       done
       rm -f $temp 2> /dev/null
       rm -f $temp2 2> /dev/null
       $
       这段脚本用while循环和一个真值常量创建了个无限循环来显示菜单对话。这意味着,执行完每个函数之后,脚本都会返回继续显示菜单。
       由于menu对话包含了一个Cancel按钮,脚本会检查dialog命令的退出状态码,以防用户按下Cancel按钮退出。因为它是在while循环中,所以退出该菜单就跟用break命令跳出while循环一样简单。
       脚本用mktemp命令创建两个临时文件来保存dialog命令的数据。第一个临时文件$temp用来保存df和meminfo命令的输出,这样就能在textbox对话中显示它们了(如下图所示)。第二个临时文件$temp2用来保存在主菜单对话中选定的值。

用textbox对话选项显示的meminfo命令输出

用textbox对话选项显示的meminfo命令输出

       现在看起来就像是可以给别人展示的真正的应用程序了。
       以上便是江西网络公司为大家介绍的在Linux系统中dialog命令的使用方法,如果还有哪些不太明白的地方,可随时来电和我们联系。此外,想了解更多关于微信开发、电商购物网站开发、APP开发等方面的知识的朋友,欢迎关注百恒网络网站动态,更多惊喜与您分享!
400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号

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

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