($ @)は1から始まる位置パラメータに展開されます。
複数の一般から始まる位置パラメータを取得するにはn
?
コマンドの引数として2つで始まる位置引数を使用したいと思います。例えば、
myCommand $@
答え1
5番目から始まる位置引数の場合:
zsh
またはyash
。myCommand "${@[5,-1]}"
(いつものように、上記の引用は重要です。そうしないと、すべての要素がSplit + globの対象となるか、空の
yash
要素が削除されますzsh
。)ksh93
、bash
またはzsh
:myCommand "${@:5}"
(再び、引用符が重要です)
Bourne型シェル(上記のすべてのシェルを含む)
(shift 4; myCommand "$@")
(サブシェルを使って移動するそこでのみ発生します)。
cshに似たシェル:
(shift 4; myCommand $argv:q)
(サブシェル)
fish
:myCommand $argv[5..-1]
rc
:@{shift 4; myCommand $*}
(サブシェル)
rc
/es
:myCommand $*(`{seq 5 $#*})
es
:myCommand $*(5 ...)
答え2
$ foo=(1 2 3 4)
$ echo "${foo[@]}"
1 2 3 4
$ echo "${foo[@]:0:2}"
1 2
echo "${foo[@]:2}"
3 4