
前提環境
- os: Ubuntu(16.04.3 LTS (Xenial Xerus))
make
: GNU Make 4.1
やりたいこと
あるファイルの各行の内容を、他のコマンドに渡したい。
処理はmakeコマンドにより実施します。
そのために、
- 結合結果用の変数(attr)を用意
- whileループでファイルの内容を一行ずつ取得
- ループ内でattrに値を結合して格納
- 当該変数の内容を別のコマンドに渡す
をしようとしましたが、3.でうまくいきませんでした。
どうすればよいかご教示いただければ幸いです。
やりたいことの例
file
1# コメントは除外したい 2a 3b 4c
上記のファイル内容をmakeの中で読み込んで別のコマンド引数として実行したい。
makeの中で例えばcat a b c
みたいにしたいです。
やったこと
普通にattr=
で再代入しようと思いましたが、これは/bin/sh/ではできないようです。
makefile
1test: 2 attr=; 3 while read line; do \ 4 attr=$${attr}$${line}; \ 5 done < ファイル名; 6 echo ${attr} 7# 出力結果は空行
次にattr:=
で実施しようと思いました。
/bin/sh/ではeval
を使うとのことで実施したのですが、Syntax error: ";" unexpected
が出て失敗しました。
そこで;
を外して以下のように実施しましたが、うまくいきませんでした。
makefile
1test: 2 attr=; 3 while read line; do \ 4 tmp=$${attr}; \ 5 $(eval attr=$${tmp}$${line}) \ 6 done < ファイル名; 7 echo ${attr} 8# 出力結果は空行

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。