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;
}
Apa perbedaan antara menggunakan _exit() &exit() di Linux fork-exec konvensional?
Perbedaan antara SIGKILL SIGTERM mempertimbangkan pohon proses