如何在循环定义中使用参数

How to use an argument in a loop definition

感谢您的帮助。 我在这里做错了什么?我希望在循环中使用数字答案,但它并不 return 我所期望的 :

if [ "$#" -eq 0 ]; then
echo -n "Enter the number: "
read answer
else
  answer=( "$@" )
fi
for i in {1..$answer} ; do echo ${i}; done

执行时,我有这个:

me@local misc]$ ./test.sh
Enter the number: 5
{1..5}

我希望回显 return 1 2 3 4 5

由于没有建议的答案,我决定切换到 bash 并使用有效的语法(尽管它困扰着我)

for (( i=1 ; i<=${answer} ; i++));

您也可以这样做:

if [ "$#" -eq 0 ]; then
echo -n "Enter the number: "
read answer
else
        answer=( "$@" )
fi
for i in $(seq 1 $answer) ; do echo ${i}; done