Bash
通過濾色器傳送命令
Unix中是否存在類似的東西?
$ echo "this should show in red" | red $ echo "this should show in green" | green $ echo "this should show in blue" | blue
在這裡,我並不是說要出現文字顏色程式碼文本(例如,要粘貼到文件中)。我的意思是讓文本在終端中實際顯示為該顏色。這可能嗎?
這是一個可以做到這一點的小腳本。將其保存
color
在您的目錄中$PATH
(例如,~/bin
如果它在您的目錄中$PATH
):#!/usr/bin/env perl use strict; use warnings; use Term::ANSIColor; my $color=shift; while (<>) { print color("$color").$_.color("reset"); }
然後,通過腳本傳遞您的文本,
.
作為要匹配的模式並指定顏色:支持的顏色取決於終端的功能。有關更多詳細資訊,請參閱包的文件
Term::ANSIColor
。
你會用
tput
它:tput setaf 1 echo This is red tput sgr0 echo This is back to normal
這可用於建構管道:
red() { tput setaf 1; cat; tput sgr0; } echo This is red | red
基本顏色分別為黑色(0)、紅色(1)、綠色、黃色、藍色、品紅色、青色和白色(7)。您將在
terminfo(5)
手冊頁中找到所有詳細資訊。