无需移位即可在 shell 脚本中获取参数范围的可移植/POSIX 方法

无需移位即可在 shell 脚本中获取参数范围的可移植/POSIX 方法

我以为我已经找到了一种可移植或 POSIX 兼容的方法来获取 shell 脚本中的参数范围,但我已经忘记了它,而且似乎再也找不到它了。我认为它的语法看起来像${@:1}or 。这个方法:${@:1:3}bash

  • 可以获得第n个参数之后的所有参数。
  • 从第 n 个参数开始到第 m 个参数的参数范围,并给出要获取的范围的长度。
  • 没用过shift
  • 没用过eval
  • 没用过$*
  • \x00处理参数时,对参数中的字符(除了 )没有任何限制。

可能是什么?如果我可能没有真正看到我认为看到的方法,是否有一种方法可以获取传递给可移植/POSIX 兼容并满足上述要求的脚本或函数的参数范围?

答案1

如果是 AWKing,是这个吗(抱歉,如果我没有很好地理解你的问题)?

awk '
  BEGIN{
    first=3;
    last=7;
    for(i=3;i<=7;i++)
      print ARGV[i];
  }
' ${@:+"$@"}

相关内容