echoとリダイレクト
Lesson 7 あたりからmkdir や touch で空のファイルを作るのなんて面白くない。ということで、cp や mv を使ってディレクトリの中にファイルをコピーしたり移動したりしてきました。
ディレクトリの中に内容物が増えましたから、ディレクトリの中はもう空じゃないですよね?(笑)
それにmkdir で作ったディレクトリは空っぽのようだけど、ls -a で見てみると、. と .. というリンクが生成されていたこともLesson 9 で知りました。
でも、touchで作った普通のファイルはまだ空っぽのままです。
いよいよ普通のファイルに文字を書き込んで、空っぽの世界を卒業しましょう。
以前、touch で作った空のファイルをテキストエディタで開いて書き込むのが王道ですが、いきなりですけど少し遠回りしたいと思います(笑)。
echo で文字列を表示する
では、作業ディレクトリ(first_dir) で以下のとおりターミナルに入力してみてください。
画面に文字列を表示
echo "あいうえお"
出力結果はどうなりましたか??

ちょっと期待はずれだったかもしれませんが、echo コマンドは引数に与えられた文字列を画面に表示するだけです。
まさにエコー。文字通りの働きしかしません。
ここでちょっと細かいことですが、注意してほしいのは、echo に渡した文字列をダブルクォートで囲んでいることと、出力結果ではダブルクォートの中身だけが表示されたことです。
ちなみにダブルクォートというのは、" のことです。
ただ言われたことを山びこみたいに繰り返す echo が一体何の役に立つのか??
そう思いますよね?(笑)
このレッスンの最初の方で、Linux のコマンド一つ一つはホントにちょっとのコトしか出来ない。っていうお話をしました。echo も画面に渡された引数の内容を表示するだけです。
echo でファイルに書き込む
さて、echo は画面に結果を表示しましたが、この画面というのをLinuxの世界では「標準出力」なんて呼んだりしています。
標準出力・・・・。聞き慣れない単語ですよね?
ま。今のところは「標準的な出力の場所」くらいの感じで、なんとなく忘れないでいてください。
echo はとくに何も指定しなければ、標準的な出力の場所として画面を選択して表示します。
ってことは・・・・。何か指定すれば出力する場所を変えてくれそうです。
ターミナルで以下のようにコマンドを入力してみてください。
echo の出力先をファイルに向ける
echo "あいうえお" > file_001.txt
file_001.txt はLesson 6 のところでtouch で生成した空のファイルでした。
今、その空のファイルに、echo の出力を画面(標準出力)からfile_001.txt というファイルに方向を変えてみました。
出力の向きを変えたのは > という記号です。
それではちゃんと出力先がファイルに変更できたかどうか?? チェックしてみましょう。
使うコマンドはcat です。
cat でファイルの中身をチェック
cat file_001.txt

echo "あいうえお" > file_001.txt の > によってecho は標準出力には何も表示せず、プロンプトに戻りました。
そしてcat でファイル(file_001.txt) の中身をチェックしてみると、cat はその内容を標準出力に表示しました。
これでようやくファイルに文字列を書き込むことができました。
ちなみにecho の結果を標準出力からファイルに向きを変えることを、リダイレクトと言います。
さぁこれでファイルの書き込みができましたので、ちょっと面倒臭いですけど、echo とリダイレクトでドンドンfile_001.txtへ書き込んでみましょう!
今度は "かきくけこ" を書き込みます。
"かきくけこ" をファイルへ書き込む
echo "かきくけこ" > file_001.txt
ちゃんと書き込めたかどうか? cat でチェックしてください。
どうでした??
期待通りの結果でしたか??

file_001.txt を書き換えたいのなら、上のコマンドでOKです。
でも、たぶん前回書き込んだ"あいうえお" に続けて、"かきくけこ" が書き込まれると思いませんでしたか??
>> でファイルに追記
もし、追記したかったら、以下のように命令します。
echo をリダイレクトしてファイルに追記
echo "さしすせそ" >> file_001.txt
> の代わりに >> を使えば追記されます。

> は上書き、>> は追記。と覚えておけばひとまずOKです。
さて、ファイルへの書き込みができるようになりましたが、その確認を今はcat で行っています。
cat も echo と同様に、標準出力に表示していますから、ファイルを開いて中身を確認している感じがしないですよね?
それに、echo じゃ書き込みや追記はできるけど、もっと自由に編集して書き込みたい。ですよね?
次回はいよいよテキストエディタを使って、ファイルに直接、文字を書いたり消したりしたいと思います。
テキストエディタはvim を使います。
vim はちょっとクセのあるエディタですので、このレッスンとは分けて専用のページで勉強していきましょう。