How can I create a message box from the command line?
For a standard "box around a message", use boxes
:
echo 'This is a test' | boxes
boxes
will look like this (First one. Second one is a custom like cowsay
):
If you mean an alert box, use notify-send
:
notify-send 'title' 'message'
notify-send
looks like this:
You also can use zenity
for a popup window:
zenity --error --text="An error occurred\!" --title="Warning\!"
Zenity is more graphical and has more options, like having the window appear as a question, using:
zenity --question --text="Do you wish to continue/?"
or even progress bars, using:
find /usr | zenity --progress --pulsate --auto-close --auto-kill --text="Working..."
zenity
looks like this:
Or use dialog
, for a command-line only message box:
dialog --checklist "Choose OS:" 15 40 5 \
1 Linux off \
2 Solaris on \
3 'HP UX' off \
4 AIX off
dialog
looks like this:
Another option is whiptail
:
whiptail --title "Example Dialog" --msgbox "This is an example of a message box. You must hit OK to continue." 8 78
whiptail
looks like this:
And if you are truly crazy, use toilet
:
toilet -F border -F gay "CRAZY"
toilet
looks like this:
- Source for boxes
- Source for dialog 1
- Source for dialog 2
- Source for zenity 1
- Source for zenity 2
- Source for whiptail 1
- Source for whiptail 2
- Source for toilet
xmessage
This is the granddaddy of GUI alerts:
xmessage -center "Hello, World!"
Pure retro goodness.
I also bet that it should be widely available on X11 systems.
SO thread: How to show a GUI message box from a bash script in linux? | Stack Overflow
Tested in Ubuntu 18.04.
And then just because @polym's completely over the top answer missed the classic messaging:
write <username> [<terminal>]
- send a message to another user. Either interactively or as part of a pipe with echo "message" | write username
And the complement to write, wall
to send a message to all users