如何从命令行创建消息框?

如何从命令行创建消息框?

如何从命令行创建消息框(GUI 消息框或终端内显示的消息框)?

能够从用户那里获取简单的输入也将很有趣,例如,通过单选按钮给出的输入(是/否、确定等)。

答案1

对于标准的“消息周围的框”,请使用boxes

echo 'This is a test' | boxes

boxes看起来像这样(第一个。第二个是自定义的cowsay):

星号框和持有文本符号的 ASCII 艺术狗的屏幕截图


如果您指的是警报框,请使用notify-send

notify-send 'title' 'message'

notify-send看起来像这样:

弹出消息显示“Hello Ashframe...”


您还可以用于zenity弹出窗口:

zenity --error --text="An error occurred\!" --title="Warning\!"

Zenity 更加图形化,并且有更多选项,例如让窗口显示为问题,使用:

zenity --question --text="Do you wish to continue/?"

甚至进度条,使用:

find /usr | zenity --progress --pulsate --auto-close --auto-kill --text="Working..."

zenity看起来像这样:

带按钮的错误、问题、信息和警告对话框


或者使用dialog, 作为仅限命令行的消息框:

dialog --checklist "Choose OS:" 15 40 5 \
1 Linux off \
2 Solaris on \
3 'HP UX' off \
4 AIX off

dialog看起来像这样:

带有 4 个选项的 TUI 对话框


另一种选择是whiptail

whiptail --title "Example Dialog" --msgbox "This is an example of a message box. You must hit OK to continue." 8 78

whiptail看起来像这样:

带有两个文本按钮的鞭尾弹出框


如果你真的很疯狂,请使用toilet

toilet -F border -F gay "CRAZY"

toilet看起来像这样:

彩色文本框写着“疯狂”

答案2

留言

这是 GUI 警报的鼻祖:

xmessage -center "Hello, World!"

纯粹的复古善良。

我还打赌它应该在 X11 系统上广泛使用。

所以线程:如何在 Linux 中的 bash 脚本中显示 GUI 消息框? |堆栈溢出

在 Ubuntu 18.04 中测试。

答案3

然后只是因为@polym 的回答完全超出了经典的信息:

write <username> [<terminal>]- 向另一个用户发送消息。交互式或作为管道的一部分echo "message" | write username

写


并补写,wall向所有用户发送消息

墙

答案4

如果您愿意将文本通过管道传输到 Python 包装器,您可以使用terminaltables

pip3 install colorclass
pip3 install terminaltables

然后在GitHub 存储库,您可以使用其中一个示例来编写 python 包装器。

在此输入图像描述

相关内容