GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo imprimir una variable con alineación central acolchada?

¿Cómo puedo imprimir $myvar acolchado para que esté en el centro de la terminal, y a ambos lados están = hasta el borde de la pantalla?

Respuesta aceptada:

Encontré dos piezas de información aquí en la red stackexchange que me ayudaron a llegar a esta respuesta funcional:

  • https://stackoverflow.com/q/263890/5419599
  • https://stackoverflow.com/q/4409399/5419599

Sin embargo, el código de esta respuesta es mío.

Vea el historial de edición si desea más verbosidad; He editado todo el cruft y los "pasos a lo largo del camino".

Creo que la mejor manera es:

center() {
  termwidth="$(tput cols)"
  padding="$(printf '%0.1s' ={1..500})"
  printf '%*.*s %s %*.*sn' 0 "$(((termwidth-2-${#1})/2))" "$padding" "$1" 0 "$(((termwidth-1-${#1})/2))" "$padding"
}
center "Something I want to print"

Salida en un terminal de 80 columnas de ancho:

========================== Something I want to print ===========================

Tenga en cuenta que el relleno no tiene que ser un solo carácter; de hecho, el padding la variable no lo es, tiene 500 caracteres en el código anterior. Podría usar alguna otra forma de relleno cambiando solo el padding línea:

padding="$(printf '%0.2s' ^v{1..500})"

Resultados en:

^v^v^v^v^v^v^v^v^v^v^v^v^v Something I want to print ^v^v^v^v^v^v^v^v^v^v^v^v^v^

Otro uso práctico es:

clear && center "This is my header"

Linux
  1. Cómo imprimir pthread_t

  2. Alias ​​con variable en bash

  3. ¿Cómo imprimir un número en el ensamblado NASM?

  4. ¿Cómo obtener ps para imprimir grupo?

  5. Bash:cómo imprimir cadenas de varias líneas (con '\ n') usando printf

Bash printf - Cómo imprimir una variable en Bash

Cómo integrar ONLYOFFICE 9.6 con WordPress

Cómo instalar Maven en Windows

Cómo asegurar servidores Linux con SE Linux

Cómo establecer la variable de entorno en Bash

Cómo crear un comercio electrónico con Magento