提供されたパラメータをどのように繰り返すことができますか?

提供されたパラメータをどのように繰り返すことができますか?

次のコードがあります。

function test() {
    for ft in "$1"; do
        echo $ft
    done
}

test 5

私は数字12を繰り返すので、ftが1,2,3,4,5各ループに個別に含まれることを望みます。しかし、5つだけ印刷されます。私も試してみましたが、{1..$1}まだ同じ結果です。助けてください!

ベストアンサー1

何を求めているのか分からない。パラメータを指定してから1からその値まで繰り返しますか?その場合は、bash(および他のシェル)を使用してこれを実行できます。

function test() {
    for ((i = 1; i <= $1; ++i)); do
        echo $i
    done
}

test 12
1
2
3
4
5
6
7
8
9
10
11
12

この構文をサポートするシェルがない場合は、for(...)次のコマンドを使用して同じことを実行できます。

function test() {
    i=1

    while [ $i -le $1 ]; do
        echo $i
        i=$(expr $i + 1)
    done
}

おすすめ記事