Logo
내 게시판 만들기
리눅스

getopts — 표준 옵션 파서

별님이 | 2026.04.27 13:42:16
조회 51 | 추천 0

스크립트가 -v -f file 같은 옵션을 받을 때 일일이 case로 처리하기 번거로움.

getopts가 「짧은 옵션」 파싱을 표준화합니다.



기본 사용.

while getopts "vf:" opt; do / case "$opt" in / v) verbose=1 ;; / f) file="$OPTARG" ;; / esac / done.

"vf:"의 콜론은 「인자가 있는 옵션」 표시.

-v 같은 플래그, -f filename 같은 인자.



동작.

getopts가 한 옵션씩 파싱해 $opt에 저장.

인자가 있으면 $OPTARG에.

while 루프가 모든 옵션 처리.

파싱 후 shift $((OPTIND-1))로 위치 인자만 남김.



한계.

POSIX getopts는 「짧은 옵션」(-v)만, 「긴 옵션」(--verbose)은 안 됨.

긴 옵션 필요하면 GNU getopt(다른 도구) 또는 수동 파싱.



대안.

1) GNU getopt — 긴 옵션 지원, 호환성 약간 까다로움.

2) argbash — 옵션 파서를 자동 생성.

3) python click을 inline 호출.

4) 수동 case + shift 패턴.

단순 스크립트는 getopts, 복잡한 CLI는 다른 언어로 옮기는 게 깔끔할 수도.




한 줄 요약


getopts는 짧은 옵션 파싱 표준.

"vf:" 형식(콜론은 인자 있음), $opt·$OPTARG·OPTIND 활용.

긴 옵션(--verbose)은 GNU getopt 또는 수동.

단순은 getopts, 복잡은 다른 언어.




더 알아볼 것


- GNU getopt 사용법

- argbash — 자동 생성

- docopt — 도움말로 파서 정의

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
102 구름이 26/04/27 24 0
101 곰돌이 26/04/27 22 0
100 멍뭉이 26/04/27 26 0
99 구름이 26/04/27 21 0
98 곰돌이 26/04/27 23 0
97 햇살이 26/04/27 23 0
96 별님이 26/04/27 51 0
95 부엉이 26/04/27 22 0
94 햇살이 26/04/27 23 0
93 구름이 26/04/27 21 0
92 토순이 26/04/27 22 0
91 너구리 26/04/27 33 0
90 곰돌이 26/04/27 23 0
89 야옹이 26/04/27 22 0
88 구름이 26/04/27 23 0
87 별님이 26/04/27 21 0
86 별님이 26/04/27 20 0
85 멍뭉이 26/04/27 30 0
84 부엉이 26/04/27 23 0
83 야옹이 26/04/27 27 0
82 야옹이 26/04/27 26 0
81 너구리 26/04/27 24 0
80 야옹이 26/04/27 23 0
79 토순이 26/04/27 24 0
78 구름이 26/04/27 25 0
77 다람쥐 26/04/27 28 0
76 구름이 26/04/27 21 0
75 별님이 26/04/27 25 0
74 토순이 26/04/27 25 0
73 구름이 26/04/27 23 0
신고하기

신고 사유를 선택해 주세요.