-
./test -vo out.png --size 256 input.txt 같은 GNU 표준을 따르는 명령줄 인자 파서
-
-h 및 --help로 내장된 도움말 메시지 제공
- 태그 설정으로 구조체 필드에 인자 매핑
- 배열, 슬라이스, 구조체 같은 복합 타입 필드 지원
- 중첩된 서브 명령 지원
GNU 명령줄 인자 규칙
- 하이픈(
-)으로 시작하는 항목은 옵션임
- 여러 옵션은 결합 가능 (
-abc는 -a -b -c와 동일함)
- 긴 옵션은 두 개의 하이픈(
--)으로 시작 (--abc)
- 옵션 이름은 영숫자만 가능
- 옵션 값은 공백, 등호(
=), 또는 연속된 값으로 설정 가능 (-a1, -a=1, -a 1 모두 동일)
- 옵션과 비옵션 값은 섞여도 문제 없음
- 옵션은 어떤 순서로든 나타날 수 있음.
-
--는 옵션 종료 의미로 이후 인자는 모두 비옵션으로 처리
- 단일
-는 일반적으로 표준 입력 또는 출력을 의미
- 동일 옵션이 여러 번 지정되면 마지막 값이 적용됨
- 옵션은 여러 개의 값을 가질 수 있음 (
-a 1 2 3은 [1,2,3]으로 처리됨)
추가 기능
- 옵션 카운팅:
-vvv는 v = 3으로 설정됨
- 옵션 추가:
-v 1 -v 2는 v = []int{1, 2}로 설정됨
- 불리언 옵션:
--var는 활성화하고 --no-var는 비활성화함
- 옵션은 구조체, 슬라이스, 맵과 같은 복합 타입이 될 수 있음
- 옵션은 소스(예: SQL)에서 목록/딕셔너리 값을 가져올 수 있음