GNU/Linux >> Linux の 問題 >  >> Linux

printf での色の使用

これは私にとってはうまくいきます:

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

printf(1) から :

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

古風な端末コードを使用するのではなく、次の代替案をお勧めします。より読みやすいコードを提供するだけでなく、当初の意図どおりに色情報をフォーマット指定子から分離しておくこともできます。

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

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

追加の色については、こちらの回答を参照してください


パーツをきれいに分離するのではなく、混ぜ合わせています。

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

基本的には、固定のものをフォーマットに、可変のものをパラメータに入れます。


これは、端末で異なる色を取得するための小さなプログラムです。

#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. 特殊文字でSedを使用していますか?

  2. Mcでワードラップを使用していますか?

  3. Duコマンドで–excludeを使用しますか?

  1. SFTPを使用してFilezillaでクラウドサーバーに接続する

  2. unixコマンドウォッチで色付け?

  3. 列値条件で awk を使用する

  1. LinuxでのBash履歴での単語修飾子の使用

  2. ddを使用してFFでファイルをパディングする方法は?

  3. VSFTPD での許可されたユーザー リストの使用