Bash
在 echo 命令中更改字型
是否可以在 zsh 或 bash 中更改 echo 輸出的字型屬性?
我想要的是類似於:
echo -n "This is the font: normal " echo -n $font=italic "italic," echo -n $font=bold "bold," echo -n "and" echo -n $font=small "small".
以便在一行文本中列印:“這是字型:正常、斜體、粗體、小”。
在大多數(如果不是全部)終端仿真器上,您不能設置不同的字型大小或不同的字型,只能設置顏色和一些屬性(粗體、下劃線、突出)。
在 bash(或 zsh 或任何其他 shell)中,您可以直接使用終端轉義序列(除了一些外來的轉義序列,這些天所有終端都遵循 xterm 的領導)。
CSI
是ESC [
,用$'\e['
bash 編寫的。更改屬性的轉義序列是CSI Ps m
.echo $'\e[32;1mbold red\e[0mplain\e[4munderlined'
Zsh 有一個方便的功能。
autoload -U colors colors echo $bold_color$fg[red]bold red${reset_color}plain$'\e['$color[underline]munderlined
或者可以將其作為提示擴展的一部分,也可以使用
print -P
,或%
參數擴展標誌:print -P '%F{red}%Bbold%b red%f %Uunderline%u'