GNU/Linux >> Tutoriales Linux >  >> Linux

Usar colores con printf

Esto funciona para mí:

printf "%b" "\e[1;34mThis is a blue text.\e[0m"

Desde printf(1) :

%b     ARGUMENT as a string with '\' escapes interpreted, except that octal
       escapes are of the form \0 or \0NNN

En lugar de usar códigos de terminal 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 pretendía originalmente.

blue=$(tput setaf 4)
normal=$(tput sgr0)

printf "%40s\n" "${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%-6s\e[m' "This is text"

Básicamente, coloque las cosas fijas en el formato y las cosas variables en los parámetros.


Este es un pequeño programa para obtener diferentes colores en la terminal.

#include <stdio.h>

#define KNRM  "\x1B[0m"
#define KRED  "\x1B[31m"
#define KGRN  "\x1B[32m"
#define KYEL  "\x1B[33m"
#define KBLU  "\x1B[34m"
#define KMAG  "\x1B[35m"
#define KCYN  "\x1B[36m"
#define KWHT  "\x1B[37m"

int main()
{
    printf("%sred\n", KRED);
    printf("%sgreen\n", KGRN);
    printf("%syellow\n", KYEL);
    printf("%sblue\n", KBLU);
    printf("%smagenta\n", KMAG);
    printf("%scyan\n", KCYN);
    printf("%swhite\n", KWHT);
    printf("%snormal\n", KNRM);

    return 0;
}

Linux
  1. ¿Usando Notify-send con Cron?

  2. ¿Usando –exclude con el comando Du?

  3. Usando sed para dividir una cadena con un delimitador

  4. ¿Usando SDL2 en Linux con g ++?

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

Uso de Cat Command en Linux con ejemplos

Bash Scripting - Comando Printf explicado con ejemplos

Cómo buscar LDAP usando ldapsearch (con ejemplos)

Programar trabajos en Linux con el comando 'at'

¿Cómo rellenar un archivo con FF usando dd?

Uso de una lista de usuarios permitidos con VSFTPD