이 쉘 명령에서 "--"(이중 대시)는 무엇을 의미합니까?

이 쉘 명령에서 "--"(이중 대시)는 무엇을 의미합니까?

다음 쉘 명령이 있습니다.

kill `cat -- $PIDFILE`

이중은 무엇입니까? 그냥 사용하지 않는 이유

kill `cat $PIDFILE`

답변1

명령줄 옵션으로 뒤에 오는 내용을 구문 분석하지 않도록 지시 --합니다 .cat

예를 들어, 변수가 $PIDFILE로 정의 되면 두 경우에 어떤 일이 일어날지 생각해 보세요 PIDFILE="--version". 내 컴퓨터에서는 다음과 같은 결과가 나타납니다.

$ cat $PIDFILE
cat (GNU coreutils) 6.10
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Torbjorn Granlund and Richard M. Stallman.

$ cat -- $PIDFILE
cat: --version: No such file or directory

답변2

POSIX.1-2017

POSIX또한 다음 위치에서도 지정합니다.http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html#tag_12_02

12.2 유틸리티 구문 지침

지침 10:

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

또한보십시오:https://unix.stackexchange.com/questions/11376/what-does-double-dash-mean- also-known-as-bare-double-dash

관련 정보