Unix의 모든 프로그램/유틸리티에 대해 다음과 같이 프로그램 이름 뒤에 --version을 입력하여 버전을 확인합니다.
program --version
내가 올바르게 이해했다면 이중 대시 --는 -version 대신 version이라는 단일 옵션을 지정하는 데 사용됩니다. 이는 7개의 옵션 v, e, r, s, i, o, n을 의미합니다. 그렇다면 Java와 javac의 경우 -version과 대시를 사용해야 하는 이유는 무엇입니까? Java --version도 작동하지 않습니다. 누군가 나에게 이것을 설명해 줄 수 있습니까? 미리 감사드립니다.
답변1
근본적인 문제는각 애플리케이션은 자체 매개변수 구문 분석을 구현합니다.이는 모든 개인/조직이가능한형식을 표준화하지만 모든 사람이 단일 표준을 따르도록 설득할 수는 없습니다.
상황을 더욱 악화시키는 몇 가지 역사적 문제가 있습니다.
- BSD 도구와 POSIX는 일반적으로 압축
-v
형식만 지원합니다. --version
GNU 도구는 사람이 읽을 수 있는 형식 도 지원하도록 POSIX에서 확장되었습니다 .-version
모호하기 때문에 지원할 수 없었습니다 .- Microsoft는 하이픈 대신 슬래시를 선행 문자로 표준화했습니다. 그들은 Windows용 핵심 도구를 모두 개발하므로 기본적으로 매개변수 구문 분석을 지시하는데, 이는 더 균일하다는 것을 의미합니다.
- 일부 조직오직사람이 읽을 수 있는 옵션을 지원하므로 입력을 절약하기 위해 단일 하이픈을 앞에 붙일 수 있습니다.