如何将变量值作为括号扩展序列值传递?

如何将变量值作为括号扩展序列值传递?

代码块特别是:

for n in {1..$PASSEDARGS}; do
      printf "%s\n" "$n"
done

以下代码块不起作用,而是打印{1..3}其中 3 是传递给脚本的参数数量的值。

如何让程序打印参数$n

答案1

使用 Bash 的类似 C 的 for 循环语法:

for (( i = 1; i <= PASSEDARGS; ++i )); do
  printf "%s\n" "$i"
done

答案2

for n in $(seq $#); do
      printf "%s\n" "$n"
      eval echo argument at $n: \$$n
done

相关内容