GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Farben mit printf verwenden

Das funktioniert bei mir:

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

Ab printf(1) :

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

Anstatt archaische Terminalcodes zu verwenden, darf ich die folgende Alternative vorschlagen. Es bietet nicht nur besser lesbaren Code, sondern ermöglicht es Ihnen auch, die Farbinformationen von den Formatbezeichnern zu trennen, so wie Sie es ursprünglich beabsichtigt haben.

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

printf "%40s\n" "${blue}This text is blue${normal}"

Siehe meine Antwort HIER für zusätzliche Farben


Sie mischen die Teile zusammen, anstatt sie sauber zu trennen.

printf '\e[1;34m%-6s\e[m' "This is text"

Setzen Sie im Grunde die festen Dinge in das Format und die variablen Dinge in die Parameter.


Dies ist ein kleines Programm, um verschiedene Farben auf dem Terminal zu erhalten.

#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. Mehrere Muster gleichzeitig mit dem Sed-Befehl verwenden

  2. Verwenden Sie Notify-Send mit Cron?

  3. Zeilenumbruch mit Mc verwenden?

  4. Verwendung von –exclude mit dem Du-Befehl?

  5. Verbinden Sie sich mit Filezilla über SFTP mit einem Cloud-Server

Verwenden des Cat-Befehls unter Linux mit Beispielen

Bash-Scripting – Printf-Befehl mit Beispielen erklärt

So durchsuchen Sie LDAP mit ldapsearch (mit Beispielen)

Planen Sie Jobs in Linux mit dem Befehl 'at'

Verwendung von awk mit Spaltenwertbedingungen

Verwenden einer Liste zulässiger Benutzer mit VSFTPD