고급 쉘 스크립트에 필수적인 getopts 맨페이지

 

getopts optstring name [args]

 

getopts는 파라미터는 쉘 프로시저에서 위치 매개변수를 구문 분석하는 데 사용됩니다. optstring은 인식되는 옵션 문자를 포함합니다. 문자 뒤에 콜론이 오는 경우, 옵션은 공백으로 구분되는 인수가 있어야 합니다. 콜론 및 물음표 문자는 옵션 문자로 사용할 수 없습니다.

 

호출될 때마다, getopts는 쉘 변수 이름에 다음 옵션을 배치하고, 존재하지 않는 경우 name을 초기화하며, 다음 인수의 인덱스를 변수 OPTIND로 처리합니다. OPTIND는 쉘 또는 쉘 스크립트가 호출될 때마다 1로 초기화됩니다. 옵션에 인수가 필요한 경우 getopts는 해당 인수를 OPTARG 변수에 배치합니다. 쉘은 OPTIND를 자동으로 리셋하지 않습니다; 새 매개변수 세트를 사용하려면 동일한 쉘 호출 내에서 getopts에 대한 여러 호출 간에 수동으로 재설정해야 합니다.

 

옵션의 끝을 만나면 getopts는 0보다 큰 반환 값으로 종료됩니다. OPTIND는 옵션이 아닌 첫 번째 인수의 인덱스로 설정되고 이름은 ?로 설정됩니다.

 

getopts는 일반적으로 위치 매개변수를 구문 분석하지만 args에 더 많은 인수가 제공되면 getopts는 대신 해당 매개변수를 구문 분석합니다.

 

getopts는 두 가지 방법으로 오류를 보고할 수 있습니다. optstring의 첫 번째 문자가 콜론이면 자동 오류 보고가 사용됩니다. 정상적인 작동에서 유효하지 않은 옵션이나 누락된 옵션 인수가 발견되면 진단 메시지가 인쇄됩니다. OPTERR 변수가 0으로 설정되면 optstring의 첫 번째 문자가 콜론이 아닌 경우에도 오류 메시지가 표시되지 않습니다.

 

유효하지 않은 옵션이 표시되면 getopts는 ?를 이름에 입력하고, 자동이 아닌 경우, 오류 메시지를 인쇄하고 OPTARG를 upset합니다. getopts가 자동이면 찾은 옵션 문자가 OPTARG에 배치되고 진단 메시지가 인쇄되지 않습니다.

 

필요한 인수가 없고 getopts가 자동이 아닌 경우, 이름에 물음표(?)가 표시되고 OPTARG가 unset되며 진단 메시지가 인쇄됩니다. getopts가 자동이면, 콜론(:)이 이름에 배치되고 OPTARG는 발견된 옵션 문자로 설정됩니다.

 

지정되거나 지정되지 않은 옵션이 발견되면 getopts는 true를 반환합니다. 옵션의 끝을 만나거나 오류가 발생하면 false를 반환합니다.

+ Recent posts