특수 매개변수로서 하이픈은 무엇을 의미하나요?

특수 매개변수로서 하이픈은 무엇을 의미하나요?

~에서https://www.gnu.org/software/bash/manual/html_node/Special-Parameters.html,

-(하이픈) 호출 시 지정된 현재 옵션 플래그, set 내장 명령 또는 쉘 자체에 의해 설정된 옵션 플래그(예: -i 옵션)로 확장됩니다.

무슨 말인지 잘 모르겠습니다. 하이픈으로 연결된 매개변수의 의미에 대한 예를 들어주실 수 있나요?

답변1

echo $-현재 활성화된 셸 옵션을 볼 수 있습니다 .

$ echo $-
himBH

-쉘 호출을 통해 제공 bash -h -B하거나 나중에 사용할 수 있는 옵션은 다음 과 같습니다 .set.

플래그는 다음에 정의되어 있습니다.선적 서류 비치set. 위의 옵션은 다음과 같습니다.

  • -h 실행할 명령을 찾을 때 명령을 찾아 기억(해시)합니다. 이 옵션은 기본적으로 활성화되어 있습니다.
  • -m 작업 제어가 활성화되었습니다(참조:직업 통제). 모든 프로세스는 별도의 프로세스 그룹에서 실행됩니다. 백그라운드 작업이 완료되면 셸은 종료 상태를 포함하는 줄을 인쇄합니다.
  • -B 쉘은 중괄호 확장을 수행합니다(참조:지원 확장). 이 옵션은 기본적으로 활성화되어 있습니다.
  • -H 할 수 있게 하다 '! '스타일 기록 교체(참조역사적 상호작용). 대화형 셸의 경우 이 옵션은 기본적으로 활성화되어 있습니다.

그리고i대화형 쉘의 경우.

예를 들어 다음을 사용하여 활성 옵션을 변경하면 set -x새 값을 얻게 됩니다 $-.

$ set -x +h
$ echo $-
imxBH

답변2

이는 달러 기호 확장으로서 현재 쉘의 $-양식 편지 옵션 목록(예: 및 및 )에 따라 다릅니다. 예를 들어, 대화형 셸은 이를 확장합니다.set-x-f-C적어도좋다:

echo "$-"

i

더 긴 set -o option버전을 사용할 수 있습니다set +o.

하지만 또 다른 게 있어요하이픈 특수 매개변수이는 이와 유사합니다. 당신은 그것을 사용할 수 있습니다연속되는 하이픈은 일반적인 명령 인수 목록에서 옵션의 끝을 나타내지만 단일 하이픈을 사용하여 POSIX-shell에서도 동일한 작업을 수행할 수 있습니다. 역사적으로 포탄은 허용되었습니다.하나의하이픈은 거의 같은 의미입니다.

쉘은 bash매개변수 목록의 컨텍스트에서만 단일 하이픈을 해석합니다. 예를 들어 set옵션의 끝을 표시합니다.그리고-v자세한 내용 및 추적을 비활성화합니다 -x. 게다가 set -실제로아니요매개변수 목록이 첫 번째이자 유일한 매개변수인 경우 매개변수 set목록을 지웁니다 set --.

로그인 쉘은 일반적 -으로 argv[0].

관련 정보