echoのまとめ
個人的に、使う機会の多いechoコマンド。
実は存外オプションがたくさんあるのです。
知ってどうするの?は禁句です。
今回はまあ、さくっと行きます。
オプション:
-n:行末の改行を行わない。 -e:文章中のバックスラッシュでエスケープされた文字列の解釈を有効にする。 ※ 使用可能な機能一覧 \a:アラート \b:バックスペース \c:行末の改行を出力しない \f:フォームフィード(form feed) \n:改行(new line) \r:復帰 (carriage return) \t:水平タブ \v:垂直タブ \\:バックスラッシュ(そのまま出力) \0nnn:アスキーコードが nnn (8 進) の文字 --help:ヘルプ表示 --version: バージョン情報表示
文字装飾(書体変更、色付け):
echo -e "\033[装飾;文字色;背景色mテキスト(\033[0;39m)" ※()部分はいわゆる、フォームリセット。まあ、無くてもいいけど、普段はつけよう。
いきなりでしたが。
上記が基本的な書式となります。
で、以下がそれぞれの書式となります。
装飾:
0:装飾なし 1:太字 4:下線 5:点滅 7:色反転 8:Concealed on
ただし、手前の環境で効果を確認したのは、0、1、4、7、8だけです。
また、太字にすると色が若干変わりました。この辺は、使っているシェルの設定に起因するのかもしれません。
ちなみに、分かり辛いだろう、そして日本語訳がわからない8の『Concealed on』は、背景色で塗りつぶす効果を与えます。
文字色:
30:黒 31:赤 32:緑 33:黄 34:青 35:マゼンタ 36:シアン 37:白
こちらも(そして背景色も)、使っているシェルの色設定に影響を受けるかもしれません。
手前のディスプレイの発色が悪いだけもしれませんが。
背景色:
40:黒 41:赤 42:緑 43:黄 44:青 45:マゼンタ 46:シアン 47:白
ま、文字色の十の桁が3から4になっただけですね。
用例:
echo -e "\033[1;34mtext\033[0;39m" (太字、文字が青色) echo -e "\033[1mtext\033[0;39m" (太字) echo -e "\033[44mtext\033[0;39m" (背景が青) echo -e "\033[1;44mtext\033[0;39m" (太字、背景が青) echo -e "\033[31;1;44mtext\033[0;39m" (文字色が赤、太字、背景が青)
みたいな感じで。
注意:
ここに書かれているものと異なる挙動を示す場合、お使いのechoが何なのかを調べて見てください。
たとえば、
which echo
というコマンドの結果が、
echo: shell built-in command
の場合、挙動が変わる可能性大です。これは、シェル特有のコマンドとしてechoが準備されている場合のものです。
この記事で扱っているechoは、Ubuntuにおける/bin/echoです。
また、お使いのシェルによって、オプションの挙動も変わります。
要するに、結果が環境に大きく左右されるということです。
まとめ:
まあ、自分で書いといてなんですけれど。
何やってんでしょうねぇ、この子。
ともかく。
echoコマンドについて、ちょっとしたまとめでした。