私はシェルスクリプトからパラメータスコープを取得するための移植可能または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];
}
' ${@:+"$@"}