“-”(이중 대시)의 의미는 무엇입니까? (“베어 더블 대시”라고도 함) 사용되는 것을 보았다 compgen. 예를 들면 다음과

나는 명령 --에서 사용되는 것을 보았다 compgen.

예를 들면 다음과 같습니다.

compgen -W "foo bar baz" -- b

의 의미는 무엇입니까 --?



답변

보다 정확하게 말하면 --bash 내장 명령 및 기타 여러 명령에서 이중 대시 ( )가 사용되어 명령 옵션의 끝을 나타내며 그 후에 위치 매개 변수 만 허용됩니다.

사용 예 : 문자열에 파일을 grep한다고 가정하십시오 -v-일반적으로 -v일치하는 의미를 바꾸는 옵션으로 간주되지만 (일치하지 않는 행만 표시) 다음과 같이 --문자열을 grep 할 수 있습니다 -v.

grep -- -v file


답변

이것은 파라미터 (옵션) 목록의 끝을 표시합니다.


답변

에서 man bash우리가 읽을 수있는 쉘 내장 명령 섹션 :

특별히 언급하지 않는 한, 각각의 내부 명령이 선행 옵션을 수락 등이 섹션의 설명은 -수락 -- 옵션의 끝을 나타 내기 위해 .

:, true, false, 및 test내장 매크로 옵션을 허용하지 않으며 치료하지 않는 --특별. exit, logout, break, continue, let, 및 shift내장 매크로 수락 및 프로세스 인수로 시작 -하지 않고 --. 인수를 허용하지만 옵션을 수락하도록 지정되지 않은 다른 내장은 -유효하지 않은 옵션으로 시작하는 인수를 해석하며이 해석 --을 방지 해야 합니다.

옵션의 끝을 의미 하는 echo것은 아닙니다 --.


답변

POSIX.1-2017

12.2 유틸리티 구문 지침

지침 10 :

--옵션 인수가 아닌 첫 번째 인수는 옵션의 끝을 나타내는 구분 기호로 허용되어야합니다. 다음 인수는 ‘ -‘문자로 시작하더라도 피연산자로 취급되어야합니다 .

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html#tag_12_02


답변