내가 평소에 잘 알고 있는 내용 $-
. 최근 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