Makefile でループを記述するにはどうすればいいですか? 質問する

Makefile でループを記述するにはどうすればいいですか? 質問する

次のコマンドを実行したいです:

./a.out 1
./a.out 2
./a.out 3
./a.out 4
.
.
. and so on

これをループとして記述するにはどうすればよいでしょうかMakefile?

ベストアンサー1

の使用状況から推測すると./a.out、UNIX タイプのプラットフォームを使用している場合は、次のようにします。

for number in 1 2 3 4 ; do \
    ./a.out $$number ; \
done

次のようにテストします。

target:
    for number in 1 2 3 4 ; do \
        echo $$number ; \
    done

生成:

1
2
3
4

範囲を広げるには、以下を使用します。

target:
    number=1 ; while [[ $$number -le 10 ]] ; do \
        echo $$number ; \
        ((number = number + 1)) ; \
    done

これは 1 から 10 までを出力します。whileコメントに示されているように、終了条件を 10 から 1000 に変更するだけで、範囲がさらに広がります。

ネストされたループは次のように実行できます。

target:
    num1=1 ; while [[ $$num1 -le 4 ]] ; do \
        num2=1 ; while [[ $$num2 -le 3 ]] ; do \
            echo $$num1 $$num2 ; \
            ((num2 = num2 + 1)) ; \
        done ; \
        ((num1 = num1 + 1)) ; \
    done

制作:

1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
4 1
4 2
4 3

おすすめ記事