4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Makefileのタスク実行時にy,Nで確認をとる

Last updated at Posted at 2018-02-09

Makefile、タスクという形でコマンド群を容易に再現可能な状態で保存しておける最高のツールだと認識しています。
最近はなんでもかんでもMakefileにコマンドをまとめるのがマイブームです。
が、その容易さゆえに危険なタスクをうっかり実行してしまう、ということがそのうち起こりそうで怖いなあと感じていて、これに対する対策は無いものかと考えていました。
そこで、shellらしく[y,N]で確認がとれるようにしたいという結論に至りました。

コマンド実行時、[y,N]で確認をとるようにする

以下の記述で可能になります。

cmd:
	@read -p "Are you sure? [y,N]:" ans; \
	if [ "$$ans" = y ]; then  \
	  実行したいコマンド; \
	fi

makefileのタスク内のコマンドは1行1行がサブシェル内で実行されるので、readで受け取った値を別箇所で使う際は、明示的にワンライナーとして記述する必要があります。

これで実行時に確認を取ってもらえるようになりました。より安全にMakeのタスクを実行できるようになりましたね。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?