百恒网络
介绍Linux系统中dialog命令的使用方法
  • 百恒服务
  • APP开发
  • 网页案例
  • 网页知识
  • 关于我们
  • 联系我们
  • 介绍Linux系统中dialog命令的使用方法

    2017-08-11 16:26:41 4363
           在脚本中使用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开发等方面的知识的朋友,欢迎关注百恒网络网站动态,更多惊喜与您分享!
    展开分享
    服务
    案例
    首页
    动态
    联系
    咨询