web-dev-qa-db-ja.com

テキストの色をインラインで変更しますか?

短い質問:

Bashを使用すると、個々のWordの色が異なるように文を印刷できますか?

つまりWordをインラインで印刷し、テキストの色を変更して、繰り返しますか?

1
Graviton

ANSIエスケープシーケンス

ANSIエスケープシーケンスを使用できます。ほとんどのLinuxターミナルウィンドウエミュレーターと同様に、テキスト画面でも動作するはずです。

詳細については、このリンクを参照してください。

en.wikipedia.org/wiki/ANSI_escape_code

例1:黒い背景に白いテキスト

echo -e "\0033[37;40m###############\0033[0m"

例2:灰色がかった白の背景に黒のテキスト

echo -e "\0033[30;47m###############\0033[0m"

例3:変数inversvidgreenbackbluebackおよびresetvidの使用

inversvid="\0033[7m"
resetvid="\0033[0m"
greenback="\0033[1;37;42m"
blueback="\0033[1;37;44m"
echo -e "$inversvid Now it is inverse colours $resetvid"
echo -e "$greenback Now it is greenback $resetvid and $blueback now blueback $resetvid"

enter image description here

変数の宣言と保存

基本的なANSIカラー変数の例、私はbashシェルスクリプトで使用しており、役に立つと思うかもしれませんが、

inversvid="\0033[7m"
resetvid="\0033[0m"
redback="\0033[1;37;41m"
greenback="\0033[1;37;42m"
blueback="\0033[1;37;44m"

高度なANSIカラー変数の例(mkusbロゴの色とほぼ一致)、

logoansi="\0033[38;5;0;48;5;148m"

高度なANSIカラーは、ほとんどのターミナルウィンドウエミュレータで機能しますが、デフォルトで「最も近い基本色」に設定されているテキスト画面では機能しません。


  • 変数を宣言して、bashシェルスクリプトに格納するのは簡単です(少なくとも、使用される前は、先頭近く)。
  • インタラクティブに使用したい場合は、変数を宣言して構成ファイル~/.bashrcに保存できます。

そしてもちろん、必要なことを実行するために[変更]変数を作成できます。

2
sudodus