($@)는 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