이중 대시는 여전히 긴 스위치의 posix 표준입니까?

이중 대시는 여전히 긴 스위치의 posix 표준입니까?

이중 대시에 대한 몇 가지 질문을 읽었습니다.

-단일 문자 옵션에는 단일 대시가 있고 --단어에는 이중 대시가 있습니까?
--(이중 대시)은(는) 무슨 뜻인가요? ('네이키드 더블 대시'라고도 함)

그러나 4년 전에 한 선생님이 이것이 긴 스위치(예: 또는 ) --를 처리하는 POSIX 방식이라고 말했던 것을 기억합니다 . 오늘날 제가 사용하는 많은 명령은 이 규칙을 전혀 따르지 않습니다. 제가 생각할 수 있는 가장 좋은 예는 비록 그것이 극도로 짜증나더라도 입니다 . --help--color=
findAIX find

선생님이 틀렸나요? 아니면 그 이후로 규칙이 변경되었습니까? (그럴 것 같지는 않습니다.)
마지막으로 posix옵션의 길이에 대한 규칙이 있나요?---

답변1

제 생각에는POSIX는 긴 옵션을 정의하지 않습니다.:


지침 3: 각 옵션 이름은 이식 가능한 문자 집합(alnum 문자 클래스)의 단일 영숫자 문자여야 합니다. -W(capital -W) 옵션은 공급업체 옵션용으로 예약되어야 합니다.

여러 자리 옵션은 허용되지 않습니다.

이중 대시GNU 컨벤션입니다.

내부에POSIX 조회 정의단일 대시가 있는 "긴 스위치"는 옵션의 일부가 아니라 피연산자로 제공되는 표현입니다.

답변2

find규칙의 예외인 것 같습니다. 이는 실제로 findUnix의 원래 유틸리티 개발자 커뮤니티 외부에서 시작되었으므로 "long" 옵션을 사용하는 방식은 비표준적입니다.

일반적으로 표준화는 단기 및 장기 옵션의 사용이 일반적인 관행이 된 후에만 발생합니다.최대부분적으로는 일부 루틴이나 라이브러리를 사용하여 옵션 구문 분석을 수행할 수 있기 때문입니다(따라서 일부 비명시적 표준을 적용함). 하지만 물론 그때는 바꾸기에는 너무 늦었습니다.기존의예를 들어 find스크립트를 중단하지 않는 방식으로 프로그램을 작성합니다. POSIX 규정 준수(이중 대시 사용)는 이러한 스크립트를 위반하지 않는 것보다 더 중요합니다.

tar예를 들어, 이전 버전과의 호환성은 대시를 사용하거나 사용하지 않고 짧은 옵션을 지정할 수 있는 이유이기도 합니다.

관련 정보