
UNIX Cafe | 第9回
はじめに|コマンドの「つぶやき」を残そう
ミナちゃんユニ先生、スクリプトを動かすと画面にいっぱい文字が出てきますけど、
終わったあと見返せないんですよね💦



ふふっ、それはカフェで“口頭注文だけ”してるようなものだね。
今日の出来事をノートに残すなら、“リダイレクト”を使うんだよ。
出力をファイルに残す(>)



わあ、画面じゃなくてファイルに書かれてる!
まるで、今日の出来事を日報ノートに書くみたいですね。
bash
$ echo "Welcome to UNIX Cafe" > log.txt > は、標準出力(画面表示)をファイルに書き出すコマンド。
同名のファイルがあれば上書きされる。
追記したいとき(>>)



これで、“カフェ日記”を少しずつ書き足せるようになったね。
bash
$ date >> log.txt
echo "今日もいい一日でした" >> log.txt >> はファイルに追記する。
既存の内容を消さずに、あとからメモを追加できる。
エラーメッセージを記録する(2>)



あっ、エラーもちゃんと書いてくれるんですね!
まるで「今日はコーヒー豆が切れてました☕💦」って日誌に書くみたい!
bash
$ ls /no_such_file 2> error.txt 2> は、エラー出力(標準エラー)を別ファイルに保存する。
普通の出力とは別に、“失敗メモ”として残せる。
出力とエラーをまとめて書き出す(&>)



お店の“全記録カメラ”みたいなものだね。
お客さんの声も、厨房の音も、ぜんぶ保存できる。
bash
$ ./myscript.sh &> all_log.txt &> は、標準出力と標準エラーをまとめてファイルに書き出す。
ぜんぶ記録しておきたいときに便利。
画面にもファイルにも出したい(tee)



あ、画面にも出てるし、ファイルにも書かれてる!
なんか“喋りながらメモしてる”感じですね。



その通り。tee は“聞き上手なバリスタ”なんだよ。
bash
$ echo "注文を受け付けました!" | tee order.log⚫︎ tee は、出力を画面にも表示しながらファイルに保存するコマンド。
⚫︎ “記録しつつ会話する”感じで、シェルスクリプトにもよく使われる。
Try it!|今日のログを書いてみよう



ちゃんと“お知らせ”も“失敗メモ”も入ってます!
まるで、カフェのレジノートみたい。



そう、それがリダイレクトの力なんだ。
データを“消さずに残す”って、シェルのやさしさなんだよ。
出力をファイルに残してみよう
bash
$ echo "Good morning, UNIX Cafe\!" > cafe.log追記してみよう
bash
$ echo "今日のおすすめ:ブルーマウンテン☕" >> cafe.logわざとエラーを起こして記録してみよう
bash
$ ls /no_such_file 2>> cafe.log結果を確認!
bash
$ cat cafe.logコーヒーブレイク:ユニ先生のひとこと


まとめ



リダイレクトって、出力を残す“日記みたいな機能”なんですね。
これで今日の作業もちゃんと記録できます!



そうだね。
ログは、成功も失敗も書き留める“カフェのノート”なんだ。
あとで読み返すと、きっと次の一杯がもっとおいしくなるよ。
- >
出力をファイルに上書き保存 - >> 出力をファイルに追記
- 2> 出力をファイルに追記
- &> 出力とエラーをまとめて保存
- tee 画面とファイルの両方に出力



うんっ、私も“今日のコーヒーログ”つけてみます!



それでこそ、立派なUNIX Cafeのスタッフだね!




