"$-"의 "s"는 무엇입니까?

"$-"의 "s"는 무엇입니까?

내가 평소에 잘 알고 있는 내용 $-. 최근 CentOS에서는 다음을 얻습니다.

[grochmal@orion ~]$ echo $-
himBH

hmBH두 옵션 모두에서 왔으며 내 쉘이 대화형임을 의미합니다 set.i

그러나 내 Arch Linux에서는 다음을 얻습니다.

[grochmal@haps ~]$ echo $-
himBHs

유용한 것을 찾을 수 없으며 오류가 발생합니다 man bash. set -s이것은 무엇을 s의미 하는가?

답변1

-s옵션은 "표준 입력"의 "source 명령"을 의미하는 bash start call입니다 -s. 매뉴얼에서:

-s -s 옵션이 있거나 옵션 처리 후 남은 인수가 없는 경우 표준 입력에서 명령을 읽습니다. 이 옵션을 사용하면 대화형 쉘을 호출할 때 위치 매개변수를 설정할 수 있습니다.

테스트하는 것은 매우 간단합니다.

$ bash -c 'echo $-'
hBc

$ bash -sc 'echo $-'
hBcs

기본적으로 모든 이전 bash 버전에 대해 새 셸을 시작하면 이 옵션이 설정되지 않습니다.

$ b32sh -li
$ echo $-
himBH

그러나 그것은 bash 4.4에 있습니다.

$ b44sh -li
$ echo $-
himBHs

관련 정보