getopt
가능하다면 GNU 명령을 사용하여 명령줄 인수를 구문 분석할 때 어떻게 -?
다른 옵션으로 식별할 수 있습니까? opstring에서 이스케이프하는 방법이 있습니까?
답변1
암소 비슷한 일종의 영양선택 항목 가져오기GNU를 사용하는 명령getSelect()인수와 옵션을 구문 분석하는 라이브러리 함수입니다.
이것맨페이지 getopt(3)상태:
getopt()가 옵션 문자를 인식하지 못하는 경우 stderr에 오류 메시지를 인쇄하고 해당 문자를 에 저장한
optopt
다음 를 반환합니다?
. 호출 프로그램은 opterr를 0으로 설정하여 오류 메시지를 방지할 수 있습니다.
따라서 ?
"알 수 없는 옵션"을 나타내는 데 사용되며 옵션 값으로 사용할 수 없습니다. (이 옵션 -?
은 알 수 없는 옵션과 구별이 불가능합니다 .)
답변2
당신이할 수 있다옵션 문자열로서 물음표 문자를 인수로 사용하는 것은 매우 나쁜 생각이라는 점을 인식하십시오. 대부분의 쉘은 이를 glob 구문의 일부로 사용하기 때문입니다(즉, 앞의 문자가 일치 항목에서 선택적으로 사용되거나 사용되지 않을 수 있음을 의미함). . 쓰레기를 넘기는 것은 ?
사용자가 탈출해야 하기 때문에 어려울 것입니다.
일종의 도움말 옵션을 생성하는 경우 일반적인 구문은 sum 에 대한 짧은 옵션과 긴 -h
옵션을 찾는 것입니다 --help
.
답변3
물음표를 사용한 효과를 얻으려면돕다, 알 수 없는 옵션이 실제로 물음표 문자인지 간단히 확인해보세요.
예를 들어, 알 수 없는 옵션이 물음표가 아닐 때마다 "알 수 없는 옵션"이라는 메시지를 인쇄하고 싶습니다. 다음엔 항상 나한테 전화해용법기능.
\?) if [ "$OPTARG" != "?" ] ; then echo "Unknown option \"$OPTARG\"" ; fi
usage
h
일반적으로 나는 도움말 옵션 및 u
옵션에 동의하고 사용 usage
하지만 옵션을 사용해 본 host
결과 user
마음에 듭니다.
추신. 나는 그것을 사용하고 있다세게 때리다솔라리스 10에서.