makeからシェルコマンドを実行して結果を変数に取得
- Sat
- 00:35
- シェルスクリプト
久々にmakefileをさわる事があり、シェルの実行結果を取得する必要があったのでそのサンプル。
シェルでやってることは、単にファイル名を取得して実際にはそのファイルにたいして何かしらの処理をするってことだけ。ここではファイル名をechoしてるだけ。
makefile
ファイルの一覧:
実行結果:
コマンドの前にある@はmake自体のechoを抑制するもの。付けない場合の実行結果は下記の通り。
シェルでやってることは、単にファイル名を取得して実際にはそのファイルにたいして何かしらの処理をするってことだけ。ここではファイル名を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
- 関連記事
-
- bashでforループ
- lftpコマンドによるsftpサーバへのアクセス
- makeからシェルコマンドを実行して結果を変数に取得
- lftpコマンドによるFTPSサーバへのアクセス
- シェルスクリプトIF文、数値・文字列比較、ファイル・ディレクトリ存在判定
Comment
Trackback
- URL
- https://nosource.blog.fc2.com/tb.php/160-eaa49b9c
- この記事にトラックバック(FC2Blog User)