Terminal
是否可以為“aafire”的輸出著色?
這個程序看起來很酷,但是給它一個紅色真的讓它看起來像我的電腦著火了。我認為使用 grep 或類似的管道命令可以解決問題,但我看到它列印顏色的 ASCII 轉義碼並刪除了輸出的特殊格式,使其看起來像火。
cacafire
ASCII fire(
aafire
) 是用 now dead 創建的libaa
。這實際上可能早於終端顏色程式碼(我不記得了)。然而,較新的變種是仍然libcaca
提供的cacafire
。
使用命令行標誌,您可以將輸出配置為顯示在終端而不是彈出視窗中。
aafire -driver stdout -width 80 # match width of your terminal aafire --help # see available options
現在,使用您的 shell 應用程序的首選項來控制顏色。例如,我在 Ubuntu 上使用 gnome-terminal,所以我只需轉到菜單 Edit>Profile Preferences。
至於更改字型顏色和背景顏色本身,這在原則上似乎是可能的:
aatest
請注意,第一行有藍色背景。我想這是通過指定背景顏色的轉義字元來完成的。你可以找到很多關於這個的討論,人們詢問改變他們的 bash 提示顏色。
為了插入轉義字元來更改顏色,我不確定是否可以從 shell 執行此操作。也許您可以編寫一個自定義 bash 腳本來接受來自標準輸入的輸入,將 aafire 的輸出通過管道傳輸到您的腳本中,回顯顏色變化的字元,最後回顯來自標準輸入的消息。
或者,您可能必須呼叫該庫,例如從 C 程序中呼叫。
#include <stdio.h> #include <aalib.h> aa_context *context; void main(int argc, char **argv) { if(!aa_parseoptions(NULL, NULL, &argc, argv) || argc!=1) { printf("Usage: %s [options]\n" "Options:\n" "%s", argv[0], aa_help); exit(1); } context = aa_autoinit(&aa_defparams); if(context == NULL) { fprintf(stderr,"Cannot initialize AA-lib. Sorry\n"); exit(2); } ... aa_close(context); }
來自aalib 文件的範例原始碼。