「Linuxコマンドまとめ」カテゴリでは、Linuxのコマンドについて、基本的な実行例とオプションを分かりやすくまとめます。
「echo」は文字列を出力するコマンドです。
与えられた文字列を標準出力(通常は端末ウィンドウ)に書き出します。固定の文字列のほか、変数に設定された値を出力するためによく使われます。
echoコマンドの基本的な使い方
echoコマンドの基本書式は、以下の通りです。
echo [オプション]... [文字列]...
引数に指定された文字列を出力する、シンプルなコマンドです。変数値を画面に表示して確認するほか、パイプで他のコマンドに文字列を渡したい場合や、リダイレクトでファイルに文字列を出力したい場合に使います。
echoコマンドによる変数値の確認
echoコマンドは、環境変数やシェル変数の値を出力するためによく使われます。たとえば、ホームディレクトリが設定されている環境変数「HOME」の値を出力するには、以下のように実行します。
$ echo $HOME
/home/lintaro
この時、「$HOME」を変数値(上記の例だと/home/lintaro)に置き換えているのはechoコマンドではなくシェル(通常はbash)です。シェルが「$HOME」を「/home/lintaro」に置き換えて、「echo /home/lintaro」を実行しています。そのため、他のコマンドの引数にも「$変数名」を使うことができます。たとえば、「cd $HOME」と入力してEnterを押すと、「cd /home/lintaro」が実行される、というわけです。
「$変数名」は「${変数名}」のように、「{}」(ブレース)でくくって書くこともできます。たとえば、環境変数「USER」に続けて「01」と出力したい場合、以下のように実行してもうまくいきません。
$ echo $USER01
これだと、シェルに「USER01」が変数名だと解釈されてしまうからです。このような場合、以下のように「{}」でくくるとうまくいきます。
$ echo ${USER}01
lintaro01
また、以下のように複数の文字列、変数値を一度に出力することもできます。
$ echo USER: $USER, HOME: $HOME, SHELL: $SHELL
USER: lintaro, HOME: /home/lintaro, SHELL: /bin/bash
echoコマンドの主なオプション
-n : 最後に改行を出力しない
echoコマンドは通常、最後に改行コードを出力します。以下のように、指定した文字列を出力後、改行されてからプロンプト(以下の例だと「lintaro@ubuntu:~$ 」)が表示されます。
lintaro@ubuntu:~$ echo -n STRING
STRING
lintaro@ubuntu:~$
「-n」オプションをつけると、以下のように文字列の後で改行されず、続けてプロンプトが表示されます。
lintaro@ubuntu:~$ echo -n STRING
STRINGlintaro@ubuntu:~$
このオプションは、他のコマンドに出力をパイプしたり、リダイレクトでファイルに書き出す時、改行を含めたくない場合に使用します。
-e : バックスラッシュをエスケープ文字として解釈する
バックスラッシュ(\)と文字との組み合わせを、特殊な文字として扱います。主に使われるのは「\n」(改行)、「\t」(タブ)、「\\」(バックスラッシュ)です。文字列にバックスラッシュを用いる場合、「”」(ダブルクォーテーション)でくくって以下のように実行します。
$ echo -e "line1\nline2\nline3"
line1
line2
line3
echo -e "USER\t$USER\nHOME\t$HOME\nSHELL\t$SHELL"
USER lintaro
HOME /home/lintaro
SHELL /bin/bash
$ echo -e "/\n\tetc/\n\tusr/\n\t\tbin/\n\t\tsbin/\n\tvar/\n\t\tlib/\n\t\tlog/"
/
etc/
usr/
bin/
sbin/
var/
lib/
log/
コメント