{1..$n} 的大括号展开

Brace expansion of {1..$n}

我正在尝试从 1 循环到 n,其中 n 来自用户输入。 如果我这样做:

read n
echo {1..$n}

我得到了输入 5 的输出

{1..5}

如何让它扩展到

1 2 3 4 5

通过尝试使用 for 循环来保持简单,如下所示。

echo "enter number..."
read n

for((i=1;i<=n;i++)); do
        echo "$i"
done

或使用 seqfor 循环,如下所示。

echo "Enter number:"
read howmany
for i in $(seq 1 $howmany); do
  echo "$i";
done

花括号不支持 bash 中的变量,虽然 eval 可以使用但是 它是邪恶的而且有漏洞,为什么这么看link仔细http://mywiki.wooledge.org/BashFAQ/048