带变量增量的 For 循环

带变量增量的 For 循环

我有一个小的 shell 脚本,我想在运行时显示用户输入的每个第 N 个参数,其中 N 是第一个参数。例如:对于输入,2 3 4 5 6我应该显示3 5。到目前为止我所拥有的:

N=$1
for ((i=2;i<$#;i+=$N))
do
    echo -n ${i}" "
done

但是,我收到语法错误:此部分应为操作数:i+=$N。我该如何解决?如果我将其替换i+=$N为,例如,i+=2它可以正常工作。但我想要那里的 N...

答案1

因此,为了让你的代码按你的意愿工作,你应该执行以下操作:

N=$1
for ((i=2;i<$#;((i=i+$N))))
do
  echo -n ${!i}" "
done

注意!之前的i

祝你好运 :)

相关内容