【问题标题】:How do I make a TUI dialog box?如何制作 TUI 对话框?
【发布时间】:2022-08-13 21:31:19
【问题描述】:

有没有办法复制这个:TUI dialog(当然不是我的截图)在 Shell Script 或类似 C 的东西上?这看起来比使用 dialog 包更好。

  • 你可能想要whiptail

标签: c linux bash tui


【解决方案1】:

我必须实现一个 TUI 数据库接口来为权限数据库构建工作流。鉴于 TUI 界面看起来不如 GUI,对话框提供了非常合理的解决方案,并且可以在 1-2 小时内完成。

对于单个密码字段,请使用如下密码框。它产生类似于您的屏幕截图的输出。

input_pw=$(dialog --strdo--insecure --passwordbox "Enter Password ..." 0 0 )

if [ "$input_pw" = "SeCrEt" ] ; then
   do-something
fi

请注意,为了更好看的屏幕,您很可能希望使用“--form”选项,它可以更轻松地“装饰”屏幕、添加说明、控制字段布局、小部件的大小等。我花了大约 1一天的工作来弄清楚,并将其集成到我的脚本中(权限数据库的前端)。

【讨论】:

    【解决方案2】:

    我不认为您可以使用dialog 获得您所期望的确切 TUI,但这是一个尝试,通过动态生成 DIALOGRC 文件:

    #!/bin/bash
    
    rcfile=$(mktemp) || exit 1
    
    cat <<'EOF' > "$rcfile"
    use_shadow = OFF
    use_colors = ON
    screen_color = (GREEN,BLACK,ON)
    dialog_color = screen_color
    #title_color = screen_color
    border_color = screen_color
    border2_color = screen_color
    inputbox_color = screen_color
    button_active_color = screen_color
    button_inactive_color = screen_color
    button_key_active_color = screen_color
    button_key_inactive_color = screen_color
    button_label_active_color = screen_color
    button_label_inactive_color = screen_color
    EOF
    
    DIALOGRC="$rcfile" dialog --quoted --no-lines --insecure --passwordbox $' Please enter the passphrase to\n protect your key' 8 60
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-28
      • 2011-04-26
      • 2013-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多