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):

Screenshot of an asterix box and an ASCII-art dog holding a sign of text


If you mean an alert box, use notify-send:

notify-send 'title' 'message'

notify-send looks like this:

Pop-up message reading "Hello Ashframe..."


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:

error, question, info, and warning dialog boxes with buttons


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:

dialog TUI with 4 options


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:

whiptail pop-up box with two text buttons


And if you are truly crazy, use toilet:

toilet -F border -F gay "CRAZY"

toilet looks like this:

colorful text box reading "CRAZY"

  • 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

write


And the complement to write, wall to send a message to all users

wall