回答:
これを行う最も互換性のある方法はtput
、端末に送信する正しいシーケンスを見つけるために使用することです:
bold=$(tput bold)
normal=$(tput sgr0)
次に、変数$bold
を使用して、$normal
物事をフォーマットすることができます:
echo "this is ${bold}bold${normal} but this isn't"
与える
これは 太字ですが、そうではありません
tput smul
motd
ますが、ファイルを使用しています。どのように/どこでそのインスタンスの$bold
および$normal
変数を定義しますか?
文字列にスタイルを適用するには、次のようなコマンドを使用できます。
echo -e '\033[1mYOUR_STRING\033[0m'
説明:
-e
オプションは、エスケープ(バックスラッシュ)された文字列が解釈されることを意味します可能な整数は次のとおりです。
[0m
提供するものを探し回っていたが、これはそれをうまく説明している
\033[0m
3
-イタリック、少なくともコンソールでは
ユーザーがフォーマットのサポートを明示的にオフにしていないvt100互換端末でbashが実行されていると思います。
まず、オプションecho
を使用して、で特殊文字のサポートをオンにし-e
ます。後で、次のESC[1m
ようなansiエスケープシーケンスを使用します。
echo -e "\033[1mSome Text"
たとえば、ここのansiエスケープシーケンスの詳細:ascii-table.com/ansi-escape-sequences-vt-100.php
echo -e "\033[1mSome Text\033[0m"
、端末の次の行も太字になります
\033
場合は、次の\e
ように使用できますecho -e "\e[1msome text\e[0m"
理論的にはそうです:
# BOLD
$ echo -e "\033[1mThis is a BOLD line\033[0m"
This is a BOLD line
# Using tput
tput bold
echo "This" #BOLD
tput sgr0 #Reset text attributes to normal without clear.
echo "This" #NORMAL
# UNDERLINE
$ echo -e "\033[4mThis is a underlined line.\033[0m"
This is a underlined line.
しかし実際には、「高輝度」色として解釈される場合があります。
(ソース:http : //unstableme.blogspot.com/2008/01/ansi-escape-sequences-for-writing-text.html)