概要
echo
コマンドは、指定された文字列を 標準出力パイプ、通常は端末を指します。 標準出力パイプは他のインターフェースを指すことができますが、 echo
コマンドは通常、ターミナルでメッセージを印刷および表示するために使用されます。 デフォルトでは、表示されるメッセージのテキストは、ターミナル内の他のテキストの色を継承します (これは、それ自体でカスタマイズ可能です)。 ただし、出力色を変更する方法はいくつかあります echo
– 個々の文字列とメッセージ全体の両方。
この短いガイドでは、出力色を変更する方法を見ていきます
echo
Linux ベースのシステムでは、ANSI エスケープ コードを使用して、tput
また、Bash スクリプトでこのプロセスを冗長にする方法についても説明します。
ANSI エスケープ コードを使用して出力色を変更する
色を変更する最も簡単な方法は、ANSI エスケープ シーケンス/コードを使用することです。 すべての ANSI エスケープ コードは、 Escape
さまざまな形式で表現できる文字 – 27
十進数で、 x1B
XNUMX 進数で、コントロール キーとして ^[
または 33
XNUMX 進形式で。 シーケンスの後には、次のコマンドが続きます。
33[command
開き括弧 (制御シーケンスイントロデューサー) はオプションですが、コマンドをエスケープ文字から分離するのに役立ちます。 あなたが置くとき カラーコード コマンドとして、次のテキストの色を変更します。
33[0;34
0;34
たとえば、青色のコードです。 これだけで、文字の色を変えることができます echo
と:
33[0;34Text
場所 Text
青色になります。 または、印刷する単純なbashスクリプトを検討してください "ようこそ、フランスへ" フランス国旗の色:
#!/bin/bash
BLUE='33[0;34m'
WHITE= '33[0;37m'
RED= '33[0;31m'
echo -e "${Blue}Welcome ${WHITE}to ${RED}France"
オプション -e
の旗 echo
コマンドでは、次のような特殊文字を使用できます n
(改行)および t
(タブ) 入力文字列内。
スクリプトを実行したら:
$ ./colors.sh
その結果、次のようになります。
ANSI コードは色だけでなく、スタイルにも適用できます。 コード 0..9
コードはテキスト スタイルを表します。 30...37
色を表す:
色 | コード | テキストスタイル | コード |
ブラック | 30 | シンプルなテキスト | 0 |
レッド | 31 | 太字テキスト | 1 |
グリーン | 32 | 強度の低いテキスト | 2 |
ブラウン/オレンジ | 33 | テキストに下線を引く | 4 |
青 | 34 | 点滅するテキスト | 5 |
パープル | 35 | 見えないテキスト | 8 |
シアン | 36 | 取り消し線のテキスト | 9 |
ライトグレー | 37 |
これらのオプションのいくつかを調べるために、bash スクリプトを作成しましょう。
#!/bin/bash
echo -e "33[0;33mSample text"
echo -e "33[1;33mBold text"
echo -e "33[2;33mLow intensity text"
echo -e "33[4;33mUnderline text"
echo -e "33[5;33mBlinking text"
echo -e "33[8;33mInvisible text"
echo -e "33[9;33mStrikethrough text"
このスクリプトを実行すると、次のようになります。
ベストプラクティス、業界で認められた標準、および含まれているチートシートを含む、Gitを学習するための実践的で実用的なガイドを確認してください。 グーグルGitコマンドを停止し、実際に 学ぶ それ!
同様に、コードを使用してこれらのテキストの背景色を変更できます 40..47
:
カラー | コード |
ブラック | 40 |
レッド | 41 |
グリーン | 42 |
ブラウン/オレンジ | 43 |
青 | 44 |
パープル | 45 |
シアン | 46 |
ライトグレー | 47 |
特定の文字列の背景を変更することは、フォントの色を変更する場合と同じルールに要約されます。コード自体が動作を変更します。
#!/bin/bash
BLUE='33[0;44m'
BLACK='33[0;30m'
WHITE='33[0;30;47m'
RED='33[0;41m'
echo -e "${BLUE}Welcome ${WHITE}to ${RED}France"
注: 経験則として、フォントの色を背景色に変換するには、10 を足す必要があります。 30
文字色は黒、 40
黒の背景色です。
tput で出力色を変更する
ANSI コードの代わりに、 tput
コマンド:
$ tput setaf color_code
setf
8色が可能ですが、 setaf
256色を使用できるため、使用しているコマンドに応じて、 0..7
& 0..255
カラーコードとして。 両方 コマンド専用 0..7
同じカラーコードに、 setaf
, 8..15
高輝度の色であり、 16..231
最初の 8 つの異なる色相であり、 232..255
グレースケールの色は次のとおりです。
クレジット: Wikipedia
最後に、 tput
また、他のコマンドを使用して、背景色を変更したり、太字を追加したり、強度を下げたりすることもできます。
テキストスタイル | コマンド |
前景色 | セタフ |
背景色 | セタブ |
スタイルなし | sgv0 |
太字テキスト | 大胆な |
低輝度テキスト | 薄暗い |
テキストに下線を引く | スマル |
点滅するテキスト | 点滅 |
反転テキスト | 回転 |
を使用する別のスクリプトを作成しましょう。 tput
出力色を変更するには echo
:
#!/bin/bash
YELLOW=`tput setaf 3`
echo "${YELLOW}Changing"
WHITE=`tput setaf 7 bold`
echo "${WHITE}Colors"
BLUE=`tput setaf 4 smul`
echo "${BLUE}With tput"
CYAN=`tput setaf 6 blink`
echo "${CYAN}is less"
RED=`tput setab 1 setaf 7`
echo "${RED}verbose!"
このスクリプトは、ターミナルに次の出力を出力します。
tput コマンドは、単純なカラー コードを介して任意の色を簡単に印刷する方法を提供します。 tput コマンドで利用可能なすべてのカラー コードを出力できるスクリプトを作成しましょう。
#!/bin/bash
tput init
end = $ (($ (tput colors) - 1))
w = 1
for c
in $ (seq 0 $end)
do
eval "$(printf " tput setaf % 3 s " " $c ")"
echo - n "$_"
[[$c - ge $ ((w * 2))]]
offset = 2 || offset = 0
[[$ (((c + offset) % (w - offset))) - eq $ (((w - offset) - 1))]]
echo
done
tput init
0 ~ 255 色とそのコードを出力します。
まとめ
この短いガイドでは、色を変更する方法を見ていきました echo
Linux での の出力 – ANSI エスケープ シーケンスと tput
また、Bash 変数を使用してプロセスの冗長性を減らし、背景色とスタイル テキストを調整する方法についても調べました。