質問: エコーコマンドでフォントを変更する 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". 印刷されるように:「これはフォントです:通常、イタリック、太字 小さい"テキスト行内。
回答: ここに: http://en.wikipedia.org/wiki/ansi_escape_code (注:それらの多くは通常は機能しませんが、これらのほとんどはこのようにマークされています。)私は端末でゲームを作成しており、上記のリンクに大きく依存しています。カーソルの非表示/再表示、色(30's)、「太字」(明るい)、濃い、下線付き、イタリック、背景色(30'sではなく40's)などを作成する方法も示しています。カーソルの位置(これは非常に役立ちます-たとえば、"\x1b[1a"はカーソルを1行上に移動します; "\x1b[0;0h"はカーソルを行0、列0に移動します; "\x1b[2j"は画面をクリアします; "\x1b[2k"はクリアしますこの線。人々が言っているようにあなたの目的のために:echo -e "\x1b[30;44m black with blue background \x1b[m" echo -e "\x1b[31;42m red with green background \x1b[m" echo -e "\x1b[32;40m green with black background \x1b[m" echo -e "\x1b[8m invisible; na na na na boo boo \x1b[m" 注:あなたが必要です-e inecho **-e** "\x1b[35;1m light purple \x1b[m" または、単一引用符を使用する必要があります。 man echoと入力して理由を確認します(通常、印刷するときは二重引用符が面倒です。展開しないものを必要とする場合、またはansiエスケープシーケンスが必要な場合は、使い慣れているにもかかわらず、簡単に単一引用符を使用します。何度も繰り返します--eを忘れる場合、 "box with numbers and letters [35; 1m")になります。csiが表示されるたびに、"\x1b["(または"\e["または"\u1b[")に置き換えます。 "\x1b["私はもっと標準的だと思いますが、それらの違いが何であるかは本当にわかりません。