gpt4 book ai didi

linux - 为 Linux 终端创建一个倒计时对话框菜单框?

转载 作者:太空狗 更新时间:2023-10-29 11:34:57 25 4
gpt4 key购买 nike

我如何为 Linux 控制台(不是 X,而是“终端”控制台)制作一个对话框小部件,它会在可能是菜单列表或文本框的小部件旁边显示秒数倒计时?

理想情况下,这可能是一个独立的程序,如对话框,提供参数来控制其行为。

当倒计时到达 0 时,返回小部件的选定值。如果没有人在场(或人更喜欢默认值),则可能有默认值。像 grub 和 lilo 这样的引导加载程序已经可以做到这一点了,非常好。我查看了对话框手册页,但找不到此功能集。

到目前为止尝试过:

dialog --timeout 30 --menu 'Menu Title' 20 60 3 'A' 'Choose A' 'B' 'Choose B' 'C' 'Choose C' 很接近,但是它没有显示 30 秒计时器的滴答声。

dialog --pause 'Hurry!' 10 60 30 -- 在计时器运行时显示消息和确定/取消,但仅插页式,不用于用户输入。

可以像这样组合多行:

dialog --menu 'Menu Title' 10 60 3 'A' 'Choose A' 'B' 'Choose B' 'C' 'Choose C' --pause 'Hurry up' 10 60 30 

但这会按顺序显示小部件,而不是在一页上合并显示。在这里,在没有计时器的情况下回答菜单后,您会收到一 strip 有计时器的消息。

最佳答案

为了坚持使用对话框,我通过将其分成两个对话框解决了一个类似的问题。首先出现一个对话框,在屏幕上显示默认值(和可选的替代选项),并且有一个倒计时器。用户可以按 esc 键或按取消键来更改选项,或者倒计时达到 0 并且程序继续使用默认设置。如果用户点击 escape,则会出现第二个对话框,允许编辑选项。我不想在我们的 deb-live/clonezilla 自定义操作系统构建中添加更多软件,所以我必须找到一种带有对话框的方法。

dialog --title Some options to choose from, showing default --pause "\n\n Do you accept these options?:  \n  ${options_in_nice_format_for_display}" 20 60 5
[ $? -ne 0 ] && EDIT_IP=true || EDIT_IP=false

if ${EDIT_IP}; then
dialog --editbox ${MY_OPTIONS_FILE} 20 60 2> ${EDITED_OPTIONS_FILE}
fi

对于更好的解决方案(我已经使用但不想在此处添加多余的代码),您可以添加一个以 bool 值为条件的 while 循环并允许重复编辑,直到用户满意为止。

关于linux - 为 Linux 终端创建一个倒计时对话框菜单框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1332610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com