[Shell] 함수 전달인자 중 일부만 사용하기 (bash)

by 스뎅(thDeng) on

shell script의 함수에 넘겨준 전달인자 중 앞부분 일부를 떼고 나머지만 사용하고 싶은 경우가 있다. ${@}는 전달인자 전체를 의미하고, :로 전달인자를 자를 수 있다.

#!/bin/bash

subs() {
  echo $@       # 전체
  echo ${@:1}   # 첫번째 인자 부터 - 전체와 동일
  echo ${@:2}   # 두번째 인자 부터 - 첫번째 인자 제외
  echo ${@:2:3} # 두번째 인자 부터 3개
  echo ${@:4}
}

subs 1 2 3 4 5 6 7

위 코드를 실행하면 아래와 같은 결과가 나온다.

$ test.sh
1 2 3 4 5 6 7
1 2 3 4 5 6 7
2 3 4 5 6 7
2 3 4
4 5 6 7

참고

별도로 명시하지 않을 경우, 이 블로그의 포스트는 다음 라이선스에 따라 사용할 수 있습니다: Creative Commons License CC Attribution-NonCommercial-ShareAlike 4.0 International License