首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在循环中运行对话框

在循环中运行对话框
EN

Stack Overflow用户
提问于 2019-11-17 21:32:45
回答 1查看 479关注 0票数 0

我有一个简单的shell脚本,在它中,我使用对话框,即Linux程序,为基本的开关-用例结构创建一个动态图形菜单。我使用以下参数启动该程序:

代码语言:javascript
运行
复制
CHOICE=$(dialog --clear \
         --backtitle "$BACKTITLE" \
         --title "$TITLE" \
         --menu "$MENU" \
         $HEIGHT $WIDTH $CHOICE_HEIGHT \
         "${OPTIONS[@]}" \
         2>&1 >/dev/tty)

一旦我选择了开关结构的任何选项,对话框就会退出.我想在循环中运行它,只有在我按下“取消”按钮时,它才会退出。如果我将整个脚本放入一个while true-loop中,那么一旦选择Cancel,它就不会退出。

如何通过选择“取消”来创建一个可以退出的循环?关于这件事,最有意义的方法是什么?Cancel是否返回一些我可以用作循环参数的值,以便它可以被破坏?

EN

Stack Overflow用户

回答已采纳

发布于 2019-11-18 00:01:37

来自man dialog

如果按下“取消”按钮(或

),则不会写入任何文本;对话框将立即退出

是的,在你的情况下你可以做一个循环,你会测试是否是空的。

一个例子

代码语言:javascript
运行
复制
CHOICE="foobar" ; 
while [ -n  "$CHOICE"  ] ; 
do
   CHOICE=$(dialog --clear \
         --backtitle "$BACKTITLE" \
         --title "$TITLE" \
         --menu "$MENU" \
         $HEIGHT $WIDTH $CHOICE_HEIGHT \
         "${OPTIONS[@]}" \
         2>&1 >/dev/tty)
   if [ -n "$CHOICE" ]
   then
      reset
      echo "${CHOICE}"
      sleep 5 
   fi
done
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58905412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档