GNU/Linux >> Belajar Linux >  >> Linux

Menggunakan warna dengan printf

Ini bekerja untuk saya:

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

Dari printf(1) :

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

Daripada menggunakan kode terminal kuno, bolehkah saya menyarankan alternatif berikut. Tidak hanya memberikan kode yang lebih mudah dibaca, tetapi juga memungkinkan Anda memisahkan informasi warna dari penentu format seperti yang Anda inginkan.

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

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

Lihat jawaban saya DI SINI untuk warna tambahan


Anda mencampurkan bagian-bagiannya alih-alih memisahkannya dengan rapi.

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

Pada dasarnya, letakkan hal-hal tetap dalam format dan hal-hal variabel dalam parameter.


Ini adalah program kecil untuk mendapatkan warna berbeda di 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. Menggunakan beberapa pola sekaligus dengan perintah Sed

  2. Menggunakan Sed Dengan Karakter Khusus?

  3. Menggunakan –exclude Dengan Perintah Du?

  1. Warna dengan arloji perintah unix?

  2. menggunakan awk dengan kondisi nilai kolom

  3. Bagaimana cara mengisi file dengan FF menggunakan dd?

  1. Menggunakan pengubah kata dengan riwayat Bash di Linux

  2. Kesalahan menggunakan GRANT dengan IDENTIFIED dengan kata sandi di MySQL

  3. Menggunakan daftar pengguna yang diizinkan dengan VSFTPD