일반적으로 둘 이상의 "n"으로 시작하는 위치 인수를 얻는 방법은 무엇입니까?

일반적으로 둘 이상의 "n"으로 시작하는 위치 인수를 얻는 방법은 무엇입니까?

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

관련 정보