移動せずにシェルスクリプトからパラメータ範囲を取得する移植可能/POSIXメソッド

移動せずにシェルスクリプトからパラメータ範囲を取得する移植可能/POSIXメソッド

私はシェルスクリプトからパラメータスコープを取得するための移植可能またはPOSIX互換の方法を見つけたと思いましたが、忘れてしまい、もう見つからないようです。私はその構文がorと同じだと思います${@:1}。この方法:${@: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];
  }
' ${@:+"$@"}

関連情報