如何从命令行创建消息框(GUI 消息框或终端内显示的消息框)?
能够从用户那里获取简单的输入也将很有趣,例如,通过单选按钮给出的输入(是/否、确定等)。
答案1
对于标准的“消息周围的框”,请使用boxes
:
echo 'This is a test' | boxes
boxes
看起来像这样(第一个。第二个是自定义的cowsay
):
如果您指的是警报框,请使用notify-send
:
notify-send 'title' 'message'
notify-send
看起来像这样:
您还可以用于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
看起来像这样:
另一种选择是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 包装器。