Estoy creando una secuencia de comandos bash y me gustaría mostrar un mensaje con un estado alineado a la derecha (Aceptar, Advertencia, Error, etc.) en la misma línea.Cómo alinear a la derecha y alinear cadenas de texto a la izquierda en Bash
Sin los colores, la alineación es perfecta, pero al agregar los colores, la columna alineada a la derecha se ajusta a la siguiente línea, de forma incorrecta.
#!/bin/bash
log_msg() {
RED=$(tput setaf 1)
GREEN=$(tput setaf 2)
NORMAL=$(tput sgr0)
MSG="$1"
let COL=$(tput cols)-${#MSG}
echo -n $MSG
printf "%${COL}s" "$GREEN[OK]$NORMAL"
}
log_msg "Hello World"
exit;
Esto funcionó a la perfección. Gracias por el consejo sobre el uso de printf en lugar de echo -n también. –
buen consejo en printf. justo cuando necesitaba textos ajustados :) – oligofren