歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

Linux終端彩色字符的輸出方法

雖然大部份的 Linux 發行版本都附有一個用來把目錄的內容列出來,而且可以利用彩色來增強輸出在視覺上的效果的'ls'指令,不過要把他設定的合你意卻不是件容易的事。這份文件說明了設定一些已經內附在你的 Linux 發行版本的軟體,來達到這個目地的好幾種不同的方法。

在 ANSI 兼容終端(例如 xterm、rxvt、konsole 等)裡, 可以用彩色顯示文本而不僅僅是黑白。但是我們自己編寫的程序能否輸出彩色的字符呢?當然答案是肯定的。下面的語句就輸出高亮的黑色背景的綠色字。
printf("\033[1;40;32m%s\033[0m",” Hello,NSFocus\n”);

\033 聲明了轉義序列的開始,然後是 [ 開始定義顏色。後面的 1 定義了高亮顯示字符。然後是背景顏色,這裡面是40,表示黑色背景。接著是前景顏色,這裡面是32,表示綠色。我們用 \033[0m 關閉轉義序列, \033[0m 是終端默認顏色。

通過上面的介紹,就知道了如何輸出彩色字符了。因此,我就不再多說了。下面是對於彩色字符顏色的一些定義:

前景            背景              顏色
    ---------------------------------------
    30                40              黑色
    31                41              紅色
    32                42              綠色
    33                43              黃色
    34                44              藍色
    35                45              紫紅色
    36                46              青藍色
    37                47              白色

    代碼              意義
    -------------------------
    0                終端默認設置
    1                高亮顯示
    4                使用下劃線
    5                閃爍
    7                反白顯示
    8                不可見

下面給出了一個C語言的示例:

///////////////////////////////////////////////////////////////////////////////
//filename:tracelog.c
#include <stdio.h>

int main(int argc,char **argv)
{
    unsigned char attr[]={0,1,4,5,7,8};
    unsigned char fore[]={30,31,32,33,34,35,36,37};
    unsigned char back[]={40,41,42,43,44,45,46,47};
    int adx,fdx,bdx;

    for(bdx=0;bdx <sizeof(back);bdx++)
    {
        for(fdx=0;fdx <sizeof(fore);fdx++)
        {
            for(adx=0;adx <sizeof(attr);adx++)
            {
                printf("\033[%d;%d;%dmhello,NSFocus!!!\033[0m",
                    attr[adx],fore[fdx],back[bdx]);
                printf("<==attr=%d,fore=%d,back=%d\n",
                    attr[adx],fore[fdx],back[bdx]);
            }
        }
        printf("\n");
    }
}

Copyright © Linux教程網 All Rights Reserved