コマンドラインにおけるHello Worldは、やはりechoコマンドでしょうか。
echo
コマンドラインに文字列を表示するだけのコマンド。
初めてechoコマンドを知った時、このコマンドを使う理由がどこにあるのかまったく見当も付きませんでした。
関連記事はコチラ
https://life-is-command.com/linux-command-beginner/
たいていのLinux(Unix)コマンドは標準出力することが基本になっています。
それなのに、指定した文字列をただ標準出力するだけのechoコマンドを使うことに、何の意義も感じられなかったからです。
例えば、計算を行うコマンドexprは、計算式を引数に与えると、計算結果を出力してくれます。
takk$ expr 1 + 2 3 takk$
たったこれだけで、1 + 2の結果を表示してくれるんです。しかも文字列の表示までもこなします。
takk$ expr HELLO HELLO takk$
表示するのはechoの基本機能であるにも関わらず、exprでも同じことができてしまいます。echoが入り込む余地がありません。
exprでなくとも、このような使い方をするだけなら、echoの代わりになるようなコマンドはたくさんあるでしょう。果たしてechoコマンドは必要なコマンドなのでしょうか。
echoのマニュアル(man)を確認してみましょう。
echo [SHORT-OPTION]... [STRING]... echo LONG-OPTION
とあります。
ここでmanマニュアルにおける書式の読み方についての説明です。
[] | 省略可能 |
… | 続けて記載が可能 |
SHORT-OPTION | ショートオプション。ハイフン1つに続く英数字 |
LONG-OPTION | ロングオプション。ハイフン2つに続く英単語 |
echoには、ショートオプションとして、
-n
-e
-E
があります。ショートオプションの指定法では、ハイフンの指定の後に連続して、
-ne
のように、オプションを記載することができます。
ロングオプションは、
–help
など、英単語、もしくは意味のある文章であることが多いです。
さて、echoの使い方に戻ります。
-nオプションは、改行をしないオプション
-eオプションは、バックスラッシュによるエスケープを有効にするオプション
-Eは、-eの逆でechoのデフォルトのため、基本的には使いません。
-nオプションを使わず、echoで連続表示してみます。
takk$ echo AAAA;echo BBBB AAAA BBBB
-nオプションを使ってみます。単純ですね。
takk$ echo -n AAAA;echo BBBB AAAABBBB
次に-eオプションを使ってみます。
takk$ echo -ne "AAAA\b";echo -ne "BB\nBB\n" AAABB BB takk$
AAAAが、1文字削れてAAAとなりました。さらに、BBBBが真ん中で改行されています。
これは、ダブルクォートで囲った中に、\bや\nといったバックスラッシュ付きの文字を指定したためです。
\bはバックスペースの意味で、\nは改行の意味です。
\nによる改行をするため、echoのオプションとして、-eだけでなく-nも含めました。
\\ | バックスラッシュ |
\a | 警告 (BEL) |
\b | バックスペース |
\c | 以降を出力しない |
\e | エスケープ |
\f | フォームフィード |
\n | 改行 |
\r | キャリッジリターン |
\t | 水平タブ |
\v | 垂直タブ |
\0NNN | 8進数の数値3桁 |
\xHH | 16進数の数値2桁 |
さて、もう一度echoの書式を見てみます。
echo [SHORT-OPTION]... [STRING]... echo LONG-OPTION
よく見ると、引数については、すべて省略可能です。
つまり以下のようにechoだけで使えます。
takk$ echo takk$
echoには、ただ改行する、という機能もあるということです。
コメント