Solución:
En lugar de utilizar códigos terminales arcaicos, puedo sugerir la siguiente alternativa. No solo proporciona un código más legible, sino que también le permite mantener la información de color separada de los especificadores de formato tal como lo pretendía originalmente.
blue=$(tput setaf 4)
normal=$(tput sgr0)
printf "%40sn" "${blue}This text is blue${normal}"
Vea mi respuesta AQUÍ para colores adicionales
Estás mezclando las partes en lugar de separarlas limpiamente.
printf 'e[1;34m%-6se[m' "This is text"
Básicamente, ponga las cosas fijas en el formato y las cosas variables en los parámetros.
Esto funciona para mi:
printf "%b" "e[1;34mThis is a blue text.e[0m"
De printf(1)
:
%b ARGUMENT as a string with '' escapes interpreted, except that octal escapes are of the form or NNN
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)