나는 명령 --
에서 사용되는 것을 보았다 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