~에서https://www.gnu.org/software/bash/manual/html_node/Special-Parameters.html,
-
(하이픈) 호출 시 지정된 현재 옵션 플래그, set 내장 명령 또는 쉘 자체에 의해 설정된 옵션 플래그(예: -i 옵션)로 확장됩니다.
무슨 말인지 잘 모르겠습니다. 하이픈으로 연결된 매개변수의 의미에 대한 예를 들어주실 수 있나요?
답변1
echo $-
현재 활성화된 셸 옵션을 볼 수 있습니다 .
$ echo $-
himBH
-
쉘 호출을 통해 제공 bash -h -B
하거나 나중에 사용할 수 있는 옵션은 다음 과 같습니다 .set
.
플래그는 다음에 정의되어 있습니다.선적 서류 비치set
. 위의 옵션은 다음과 같습니다.
그리고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]
.