1. ホーム
  2. makefile

[解決済み】Makefileにループを書くには?

2022-02-12 15:42:13

質問

以下のコマンドを実行したい。

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

このことをループとして書くには Makefile ?

解決方法は?

を使用していると推測される場合、次のようになります。 ./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