web-dev-qa-db-fra.com

Comment créer une boîte de message à partir de la ligne de commande?

Soit des boîtes de message GUI, soit des boîtes de message qui s'affichent à l'intérieur du terminal.

Il serait également intéressant de pouvoir obtenir une entrée simple de l'utilisateur, par exemple oui/non ou boutons radio.

76
nano - merge me

Pour une "boîte autour d'un message" standard, utilisez boxes:

echo 'This is a test' | boxes

boxes ressemblera à ceci (le premier. Le second est un personnalisé comme cowsay):

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


Si vous voulez dire une boîte d'alerte, utilisez notify-send:

notify-send 'title' 'message'

notify-send ressemble à ça:

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


Vous pouvez également utiliser zenity pour une fenêtre contextuelle:

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

Zenity est plus graphique et propose plus d'options, comme faire apparaître la fenêtre sous forme de question, en utilisant:

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

ou même des barres de progression, en utilisant:

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

zenity ressemble à ceci:

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


Ou utilisez dialog, pour une boîte de message en ligne de commande uniquement:

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

dialog ressemble à ceci:

dialog TUI with 4 options


Une autre option est whiptail:

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

whiptail ressemble à ceci:

whiptail pop-up box with two text buttons


Et si vous êtes vraiment fou, utilisez toilet:

toilet -F border -F gay "CRAZY"

toilet ressemble à ceci:

colorful text box reading "CRAZY"

126
polym

xmessage

Voici le grand-père des alertes GUI:

xmessage -center "Hello, World!"

Pure bonté rétro.

Je parie également qu'il devrait être largement disponible sur les systèmes X11.

Fil SO: Comment afficher une boîte de message GUI à partir d'un script bash sous linux? | Stack Overflow

Testé dans Ubuntu 18.04.

Et puis juste parce que @ polym a complètement dépassé la réponse la plus courante:

write <username> [<terminal>] - envoyer un message à un autre utilisateur. Soit de manière interactive, soit dans le cadre d'un tuyau avec echo "message" | write username

write


Et le complément pour écrire, wall pour envoyer un message à tous les utilisateurs

wall

8
HBruijn

Si vous êtes prêt à diriger le texte vers un wrapper Python, vous pouvez utiliser terminaltables:

pip3 install colorclass
pip3 install terminaltables

Ensuite, dans le GitHub Repo , vous pouvez utiliser l'un des exemples pour écrire un wrapper python.

enter image description here

4
not2qubit