は、以下の考慮がファイルgnu make内でシェルforループを使用する際の問題?このメイクファイルを実行している間
all: @for x in y z; \ do \ for a in b c; \ do \ echo $$x$$a >> log_$$x; \ done; \ done
を行い、2つのファイルがlog_yとlog_zを作成しました。 log_yはデータ "yb"と "yc"を持っています。同様にlog_zはデータ「zb」および「zc」を有する。
実際には、4つのファイル(log_y_b、log_y_c、log_z_b、log_z_c)を作成します。このため私は上記のmakeファイルを次のように変更しました:
all: @for x in y z; \ do \ for a in b c; \ do \ echo $$x$$a >> log_$$x_$$a; \ done; \ done
しかし、そのファイルはlog_という1つしか作成されません。 4つのファイルを作成するにはどうすればよいですか。 Makefileので
おかげでその作業罰金... – rashok
ndimが言うように下線文字が変数名を区切るていないので、それはです。また、makeマニュアルで[foreach](http://www.gnu.org/software/hello/manual/make/Foreach-Function.html#Foreach-Function)をご覧ください。あなたの例を次のように簡略化することができます: '$(foreach x、yz、$(foreach a、bc、echo $(x)$(a)>> log _ $(a);))' - わかりやすくするために、これを私の答えに入れておきます。 – Zorawar