bash: --argument 대 -arg [중복]

bash: --argument 대 -arg [중복]

대부분의 스크립트(주로 bash)에서는 다음과 같이 구성된 일부 매개변수를 보는 것이 일반적입니다.

bash-4.3:$ command --longer-argument -la

이것은 어디서 유래되었나요? 이것이 실제로 일관된 표준이 된 이유가 무엇인지 궁금합니다. 주로 가독성을 위한 것인가요?

또한 다음과 같은 것을 사용하지 않겠습니까?

bash-4.3:$ command -longer-argument, 여기서 모든 CLI 매개변수는 대시로만 지정됩니까?

답변1

이것이 도움이 될 수 있습니다( tar그러나 다른 프로그램에도 확장될 수 있다고 생각합니다). https://www.gnu.org/software/tar/manual/html_section/tar_21.html

긴 옵션은 명확하고 기억하기 쉬워야 하며, 그 의미는 일반적으로 상응하는 짧은 옵션보다 식별하기가 더 쉽습니다(아래 참조). 예를 들어:

$ tar --create --verbose --blocking-factor=20 --file=/dev/rmt0

tar에 완전히 익숙하지 않은 사람들에게도 명령이 수행하는 작업에 대한 꽤 좋은 힌트 세트가 제공됩니다.

그리고 이 링크명령줄 인터페이스 표준.

다음은 GNU 긴 옵션에 대한 농담입니다:https://www.gnu.org/fun/jokes/long-options.en.html

일반적으로 실행하면 command -h/--help명령에서 제공하는 옵션(짧은/긴)이 표시됩니다.

답변2

이중 대시가 긴 대시를 나타내고 단일 대시가 짧은 대시를 나타내지 않는 한 인수를 사용하여 옵션을 명확하게 할 수 없습니다.

-f file

... 인수 -f가 있는 옵션을 의미합니다.file

...그리고 --ffile논쟁이 없다면 완전히 다른 선택이 될 것입니다.

관련 정보