変数を使用してシーケンスを構築するにはどうすればよいですか?

変数を使用してシーケンスを構築するにはどうすればよいですか?

もちろん、これは機能します:

$ echo {1..5}
1 2 3 4 5

5しかし、数値を変数に置き換えようとすると、これは機能しなくなります。

$ f=5; echo {1..$f}
{1..5}

$ f=5; echo {1..${f}}
{1..5}

$ f=5; echo {1..f}
{1..f}

構造が解析される前に変数内の数値を置き換える方法はありますか{#..#}?

答え1

やり方がある:

:~# f=5 ; eval echo {1..$f}
1 2 3 4 5

代替:

:~# f=5 ; echo `seq 1 $f`
1 2 3 4 5

関連情報