n번째 특정 매개변수에 나머지 매개변수를 모두 포함하는 변수를 생성하는 방법

n번째 특정 매개변수에 나머지 매개변수를 모두 포함하는 변수를 생성하는 방법

$a...라는 변수에서 3번째 매개변수부터 9번째 매개변수까지의 모든 데이터를 보유하는 문자열과 같이 n번째 특정 매개변수에 나머지 모든 매개변수를 포함하는 변수를 생성하려면 어떻게 해야 합니까? 미리 감사드립니다.

답변1

Bash/ksh/zsh에서는 유사한 접근 방식을 사용하여 ${@:3:7}세 번째부터 아홉 번째 인수를 다른 단어로 처리하거나 첫 번째 문자 ${*:3:7}IFS연결선으로 연결할 수 있습니다. (7, 3부터 9까지 7이니까.)

그래서:

$ set -- $(seq 11 21)
$ echo "${*:3:7}"
13 14 15 16 17 18 19

또는

$ a="${*:3:7}"

그러나 이러한 인수를 다른 명령의 인수로 전달하려면 "${@:3:7}"관련 명령줄에서 직접 사용하십시오.

somecmd "${@:3:7}"

표준 셸에서 이 작업을 수행해야 하는 경우 를 사용할 수 없습니다 . 대신 첫 번째 인수를 제거하고 을 사용해야 ${var:n:m}합니다 .shift"$@"

arg1=$1
arg2=$2
shift 2
somecmd "$@"

관련 정보