¿Cómo crear un cuadro de mensaje desde la línea de comando?


65

Cuadros de mensaje de GUI o cuadros de mensaje que se muestran dentro del terminal.

También sería interesante poder recibir una entrada simple del usuario, por ejemplo, sí / no o botones de radio.


8
¿Qué quieres decir con "cuadro de mensaje"? ¿Un cuadro de alerta gráfica, un cuadro de mensaje emergente? ¿Algo más?
polym

Respuestas:


110

Para un "cuadro alrededor de un mensaje" estándar, use boxes:

echo 'This is a test' | boxes

boxesse verá así (Primero. El segundo es una costumbre como cowsay):

Captura de pantalla de una caja de asterix y un perro de arte ASCII con un cartel de texto


Si te refieres a un cuadro de alerta, usa notify-send:

notify-send 'title' 'message'

notify-send Se ve como esto:

Mensaje emergente que dice "Hola Ashframe ..."


También puede usar zenitypara una ventana emergente:

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

Zenity es más gráfico y tiene más opciones, como hacer que la ventana aparezca como una pregunta, usando:

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

o incluso barras de progreso, usando:

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

zenity Se ve como esto:

cuadros de diálogo de error, pregunta, información y advertencia con botones


O use dialog, para un cuadro de mensaje de línea de comandos solamente:

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

dialog Se ve como esto:

cuadro de diálogo TUI con 4 opciones


Otra opción es whiptail:

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

whiptail Se ve como esto:

cuadro emergente whiptail con dos botones de texto


Y si estás realmente loco, usa toilet:

toilet -F border -F gay "CRAZY"

toilet Se ve como esto:

cuadro de texto colorido que dice "LOCO"


3
Respuesta realmente completa, ¡es útil! ¡Gracias!

Excelente redacción, @polym - Voy zenitya ponerme nervioso una vez al mes en el departamento de actualización y actualización ...
Frank Nocke,

27

xmessage

Este es el abuelo de las alertas de GUI:

xmessage -center "Hello, World!"

Pura bondad retro.

También apuesto a que debería estar ampliamente disponible en los sistemas X11.

Hilo SO: ¿Cómo mostrar un cuadro de mensaje GUI desde un script bash en Linux? El | Desbordamiento de pila

Probado en Ubuntu 18.04.


Salió de la caja en mi instalación de Openbox. ¡Gracias!
aexl

xmessageincluso está instalado en Ubuntu Server por defecto. Entonces puedo usar ssh -Y <host> para iniciar sesión en la máquina mientras reenvío x conexiones y luego ejecutar some-command; xmessage "some-command is done"para abrir una notificación en mi escritorio cuando finalice el comando de ejecución prolongada.
Stephen Ostermiller

@StephenOstermiller sí, ¡es un buen consejo!
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

1
Comando genial. Para automáticamente borrar el mensaje después de unos segundos: xmessage -timeout 10 "Goodbye in 10s!".
AlainD

8

Y luego solo porque @ polym's completamente por encima de la respuesta superior perdió el mensaje clásico:

write <username> [<terminal>]- Enviar un mensaje a otro usuario. Interactivamente o como parte de una tubería conecho "message" | write username

escribir


Y el complemento para escribir, wallpara enviar un mensaje a todos los usuarios.

pared


1

Si está dispuesto a canalizar el texto a un contenedor Python, puede usar terminaltables:

pip3 install colorclass
pip3 install terminaltables

Luego, en el repositorio de GitHub , puede usar uno de los ejemplos para escribir un contenedor de python.

ingrese la descripción de la imagen aquí

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.