シェルスクリプトのechoコマンドの使い方で疑問に思っている事などないでしょうか?
思い通りに文字列を表示できなかったりしないでしょうか?

シェルスクリプトでechoコマンドについてきっちり知りたいです。
そのような悩みをもったエンジニアの疑問に答えます。
echoコマンドは文字列などを表示するコマンドですが、改行したいのにできなかったりします。
そんな悩みを解消すべくエンジニアの筆者が実例をもって答えます。
シェルスクリプトでechoの使い方


シェルスクリプトでechoの使い方の基礎は簡単です。
echo 表示したい文字列
これだけで文字列を表示する事ができます。
echoコマンドの効果は厳密にいうと「文字列を表示して最後に改行する」が正解です。
echoで覚えるべきオプションについて
シェルスクリプトでechoの覚えるべきオプションについてまとめます。
- -nオプションで最後の改行を無効化する
- -eオプションでエスケープ文字を有効化する
- -Eオプションでエスケープ文字を無効化する
シェルスクリプトのエスケープ文字とは
シェルスクリプトで使用するエスケープ文字を以下にまとめます。
エスケープ文字 | 意味 |
---|---|
\n | 改行(LF) |
\r | キャリッジリターン(CR) |
\t | タブ |
\b | バックスペース |
\c | これ以降の出力を抑制する |
\e | エスケープ記号 |
\a | ベル |
\f | フォームフィード |
\v | 垂直タブ |
\\ | \ |
\0nnn | nnnで表したASCIIコードの文字 8進数の値 |
\xHH | HHで表したASCIIコードの文字 16進数の値 |
エスケープ文字を使用するときは「””」で囲む必要があります。実例として以下に表示します。
シェルスクリプトでechoを実際使ってみる


ではechoコマンドをオプションを付けながら実行して、動きを見ていきましょう!
echoを使用して文字を表示する
以下のシェルスクリプトを記述してください。
#!bin/sh
echo デフォルトは改行あり
echo 改行あり
シェルスクリプトを実行します。実行する方法は様々ありますが、ここではbashコマンドを使用して「bash echo.sh」と打ちましょう。


デフォルトは改行あり
改行あり
デフォルトでは1行目のechoの最後で改行されています。
echoの-nオプションを使用して文字を表示する
以下のシェルスクリプトを記述してください。
#!bin/sh
echo -n オプションで最後の改行なし
echo 改行なし
シェルスクリプトを実行します。
オプションで最後の改行なし改行なし
-nオプションで1行目のechoの最後の改行が無効化されています。
echoの-eオプションを使用してエスケープ文字を有効化する
以下のシェルスクリプトを記述してください。
#!bin/sh
echo -e "改行あり\n改行あり"
シェルスクリプトを実行します。
改行あり
改行あり
-eオプションでエスケープ文字が有効化されて「\n」が改行として処理されています。
echoの-Eオプションを使用してエスケープ文字を無効化する
以下のシェルスクリプトを記述してください。
#!bin/sh
echo -E "改行なし\n改行なし"
シェルスクリプトを実行します。
改行なし\n改行なし
-Eオプションでエスケープ文字が無効化されて改行されていない+「\n」が文字として表示されています。
シェルスクリプトのechoの使い方まとめ


シェルスクリプトでechoの使い方の基礎は以下です。
echo 表示したい文字列
厳密にいうと「文字列を表示して最後に改行する」が正解です。
echoの覚えるべきオプションについて以下にまとめます。
- -nオプションで最後の改行を無効化する
- -eオプションでエスケープ文字を有効化する
- -Eオプションでエスケープ文字を無効化する



シェルスクリプトでechoの使い方が理解できました!改行なども自在に操れるようになりました!