【发布时间】:2022-08-13 21:31:19
【问题描述】:
有没有办法复制这个:TUI dialog(当然不是我的截图)在 Shell Script 或类似 C 的东西上?这看起来比使用 dialog 包更好。
-
你可能想要
whiptail
有没有办法复制这个:TUI dialog(当然不是我的截图)在 Shell Script 或类似 C 的东西上?这看起来比使用 dialog 包更好。
whiptail
我必须实现一个 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一天的工作来弄清楚,并将其集成到我的脚本中(权限数据库的前端)。
【讨论】:
我不认为您可以使用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
【讨论】: