会員登録すると
学習することができます。
会員登録する(無料)
学習することができます。
登録済みの方はこちら
ログイン
学ぶ目的
Make は「必要なときだけ」実行する
ここが Make とシェルスクリプトの決定的な違いです。Make はファイルの更新時刻を見比べて、必要がなければ実行しません。
out.txt: src.txt
@echo "src.txt から out.txt を作ります"
@tr a-z A-Z < src.txt > out.txt
out.txt: src.txt は「out.txt は src.txt から作られる」という依存関係の宣言です。
3回実行して確かめる
1回目。out.txt がまだ無いので作られます。
src.txt から out.txt を作ります
2回目。何も変えずにもう一度実行します。
make: `out.txt' is up to date.
実行されません。 src.txt が out.txt より新しくないからです。
3回目。src.txt を更新してから実行します。
src.txt から out.txt を作ります
また作られました。入力が変わったときだけ動く——これが Make の本領です。
シェルスクリプトとの使い分け
| 向いていること | |
|---|---|
| シェルスクリプト | 上から順に実行する手順。毎回同じことをする |
| Make | 入力から出力を作る作業。変わっていなければ飛ばしたいとき |
時間のかかる処理(ビルド、データの変換、集計)では、この差が効きます。毎回やり直す必要がないものを飛ばせるからです。
AIに頼むときの言い方
「この作業をMakefileにして」だけでは、ただのコマンド置き場になります。何から何を作るのかを伝えます。「src.txt から out.txt を作る。src.txt が変わったときだけ作り直す」のように。
このレクチャーで学ぶこと
- 依存関係の書き方
- 更新時刻を見て飛ばす仕組み
- シェルスクリプトとの使い分け
質問
まだ質問は投稿されていません。
質問投稿
ログイン後に質問の投稿ができます。