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".
「これはフォントです:通常、斜体 、太字 、 」を1行のテキスト内に表示します。
承認された回答:
すべてではないにしてもほとんどのターミナルエミュレータでは、異なるフォントサイズや異なるフォントを設定することはできず、色といくつかの属性(太字、下線付き、目立つ)のみを設定できます。
bash(またはzshやその他のシェル)では、ターミナルエスケープシーケンスを直接使用できます(いくつかのエキゾチックなものを除いて、すべてのターミナルは最近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'