옵션 매개변수의 끝을 나타냅니다. 이중 대시 "--" 대 단일 대시 "-"? [복사]

옵션 매개변수의 끝을 나타냅니다. 이중 대시 "--" 대 단일 대시 "-"? [복사]

나는 알아 차렸다https://unix.stackexchange.com/a/459007/674-, 옵션 인수의 끝을 나타내는 데 사용되는 단일 대시 입니다.

--이중 대시가 옵션 인수의 끝을 나타낼 수도 있다는 것이 맞습니까?

그렇다면 그들 사이의 차이점은 무엇입니까? 언제 어느 것을 사용해야 합니까? 그것들은 모두 GNU 규칙인가요? 감사해요.

답변1

단일 대시는 정의에 따라 파일 유형 매개변수이며 POSIX 호환 애플리케이션이 파일 유형 매개변수 뒤의 옵션을 확인하는 것을 허용하지 않습니다.

이중 대시는 옵션 끝에 있는 POSIX 정의입니다. 이후에는 파일 형식 매개변수만 허용됩니다.

따라서 최종 결과는 비슷할 수 있지만 규칙은 다릅니다.

이것은 GNU 규칙이 아니며 POSIX입니다.

또한 규칙은 다음과 같이 작성하는 것입니다.

#!/bin/sh -

또는

#!/bin/sh -p

getopt(3)특별한 매개변수와 기능이 알려지지 않았던 시대부터 시작되었습니다.

답변2

특히 Bash는 -as 의 동의어를 허용합니다 --. 질문에 인용된 답변에 제시된 예에서,

#! /bin/bash -

이는 Bash에게 그 뒤에 더 이상 옵션이 없음을 알려주는 데 사용되므로 스크립트 이름에 관계없이 shebang이 작동합니다. 예를 들어 스크립트 이름이 이면 어떻게 될지 생각해 보세요 -l.

관련 정보