Tput
tput 可以與組合功能一起使用嗎?
例如,如果我想要粗體綠色的前綴,我可能會使用
Green=$(tput bold; tput setaf 2)
. 這會將 $Green 設置為“\E[1m\E[32m”。但是在 Ansi 終端上,它也可以很容易地成為“\E[1;32m”。這可以用 tput 完成,還是我要求太多了?
不, tput 不會這樣做(通常),因為您可能只使用預定義/標準終端功能,它們沒有這種組合。
使用 ncurses,您可以使用使用者定義的功能定義您自己的終端描述,並且 tput 可以使用它。
像這樣的東西會結合顏色:
infocmp -x >foo printf '\tfgbg=\\E[3%p1%;4%p2%dm,\n' >>foo sudo tic -x foo
然後(範例為 8 色)
tput fgbg 4 0
會將前景設置為藍色,將背景設置為黑色。但是,有很多可能性。使用預定義的功能需要較少的努力。