[Linux] echo の使い方まとめ

[Linux] echo の使い方まとめ

Linux コマンドの基本 echo

Linux コマンドでも最も基本的なコマンドの echoの使い方をまとめます。echo は入力内容をそのまま返してくれるコマンドです。

Linux のコマンド操作の動作確認やシェルスクリプトで何かとよく使うので使い方をまとめます。

echo

echo コマンドは単純にテキストを標準出力に吐き出すコマンドです。シェルスクリプトにログを仕込んだりするときによく使います。

echo [出力する内容]

echo コマンドは出力する内容を渡すと、標準出力に出力します。末尾に改行(\n)が自動的に挿入されます。オプションなしだと改行コードはエスケープされるので文中には埋め込めません。

-n: 末尾の改行(\n)を挿入しない

$ echo -n 123
123$ ..

-n オプションを付けると末尾の改行が挿入されなくなります。

-e: バックスラッシュでのエスケープを解釈する

-e なしだと echo は入力の通りに出力します。

改行文字やタブ文字などエスケープしないと入力できない文字を入力したい場合、-e オプションを付けなければいけません。例えばタブを出力したい場合は以下のようにします。

$ echo -e '1\t2\t3'
1       2       3

-e なしだと '\t' という内容のまま出力されます。

$ echo '1\t2\t3'
1\t2\t3

-e 指定時に使えるようになるデータ

-e オプションを指定した時に使えるようになる制御文字やデータは以下のようなものがあります。単純にテキストで出力されるような内容だけでなく特殊な効果が得られるようになるデータもあります。

  • \\: バックスラッシュ
  • \a: ベル文字(警告音?が鳴ります。)
  • \b: バックスペース
  • \c: この文字以降の出力がされなくなります。
    • echo -e 'abc\cdef' は 'abc' しか出力されません。
  • \e: \c との違いがよくわかりません。。。
  • \f: form feed
  • \n: 改行文字
  • \r: キャリッジリターン
  • \t: タブ
  • \v: 垂直タブ

-E: バックスラッシュでのエスケープを解釈しない(デフォルト)

デフォルトの挙動ですが、-E でエスケープを解釈しないことを明示的に指定できます。

$ echo -E '1\t2\t3'
1\t2\t3

変数を出力する

変数を埋め込んでの出力ももちろん可能です。上記記事の通りです。

ファイルに echo 内容を出力

標準出力ではなくファイルに内容を出力するにはリダイレクトします。

>: ファイルに echo 内容で作成・上書き

>echo 内容を使ってファイル内容を上書きしたり、ファイルが存在しなければ作成したりできます。ファイル内容は echo の内容そのままになります。

$ echo 'abc' > a.txt
$ cat a.txt
abc

>>: ファイルに echo 内容を追記する

>> でリダイレクトすると、ファイルに echo 内容を追記します。既存のファイルデータの末尾に echo 内容が追記されます。

$ echo 'abc' > a.txt
$ echo 'def' >> a.txt
$ cat a.txt
abc
def

tee: ファイルにも標準出力にも echo する

パイプでつないで tee コマンドを使えば echo 内容をファイルにも標準出力にも同時に出力できます。

$ echo 'abc' | tee a.txt
abc
$ cat a.txt
abc

tee でファイルに出力するときに追記したい場合は tee -a とします。

$ echo 'abc' | tee a.txt
abc
$ echo 'def' | tee -a a.txt
def
$ cat a.txt
abc
def

追記も確認できました。

使い方を表示する

$ man echo

man でマニュアルを表示できます。その他オプション等の使い方はこれを見ると、把握できると思います。

以上。

Linuxカテゴリの最新記事