makeからシェルコマンドを実行して結果を変数に取得

久々にmakefileをさわる事があり、シェルの実行結果を取得する必要があったのでそのサンプル。
シェルでやってることは、単にファイル名を取得して実際にはそのファイルにたいして何かしらの処理をするってことだけ。ここではファイル名をechoしてるだけ。

makefile
01:
02:
03:
04:
05:
06:
07:
all:
	@echo "*** start"
	@FILES=`ls *.txt`; \
	for FILE in $$FILES; do \
	    echo "    file=$$FILE"; \
	done;
	@echo "*** end"

ファイルの一覧:
[user01@pc02 shell]$ l
合計 4
drwxrwxr-x. 2 user01 user01  78  2月 18 00:20 .
drwxrwxr-x. 3 user01 user01  18  2月 17 23:55 ..
-rw-rw-r--. 1 user01 user01   0  2月 17 23:59 aaa.txt
-rw-rw-r--. 1 user01 user01   0  2月 17 23:59 bbb.txt
-rw-rw-r--. 1 user01 user01   0  2月 17 23:59 ccc.log
-rw-rw-r--. 1 user01 user01 128  2月 18 00:20 makefile
-rw-rw-r--. 1 user01 user01   0  2月 17 23:59 test.txt

実行結果:
[user01@pc02 shell]$ make
*** start
    file=aaa.txt
    file=bbb.txt
    file=test.txt
*** end

コマンドの前にある@はmake自体のechoを抑制するもの。付けない場合の実行結果は下記の通り。
[user01@pc02 shell]$ make
echo "*** start"
*** start
FILES=`ls *.txt`; \
for FILE in $FILES; do \
    echo "    file=$FILE"; \
done;
    file=aaa.txt
    file=bbb.txt
    file=test.txt
echo "*** end"
*** end


関連記事

Comment

(編集・削除用)
管理者にだけ表示を許可

Trackback

URL
https://nosource.blog.fc2.com/tb.php/160-eaa49b9c
この記事にトラックバック(FC2Blog User)

カテゴリ

Amazon

アクセスランキング

[ジャンルランキング]
コンピュータ
249位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
38位
アクセスランキングを見る>>

RSSリンクの表示

ブロとも申請フォーム

Copyright © nopgm