"echo $-"의 출력을 이해하는 방법은 무엇입니까?

"echo $-"의 출력을 이해하는 방법은 무엇입니까?

출력을 이해하는 방법은 무엇입니까 echo $-? 일종의 국기 캐릭터처럼 보입니다. 구글링해도 단서를 못찾겠어요.

답변1

이는 쉘 플래그의 값을 나타냅니다.POSIX에 의해 정의됨:

-

set(하이픈) 호출 시 지정된 특수 내장 명령을 통해 또는 쉘에 의해 암시적으로 현재 옵션 플래그(문자열로 연결된 단일 문자 옵션 이름)로 확장됩니다 .

이것zsh 매뉴얼간략하게 언급:

-set<S> 호출될 때 또는 또는 명령을 통해 쉘에 제공되는 플래그입니다 setopt.

~처럼배쉬 매뉴얼설명에서 set:

현재 옵션 세트는 에서 찾을 수 있습니다 $-.

출력을 이해하려면 echo $-쉘 매뉴얼에서 옵션을 찾아봐야 합니다. 예를 들어 Bash에서 echo $-출력 이란 , 및 옵션이 활성화되어 있고( 자세한 내용은 참고자료 참조) 쉘이 대화형( )이며 표준 입력( )에서 읽는다는 himBHs의미 입니다.-h-m-B-Hhelp set-i-s

답변2

~에서배쉬 참조 매뉴얼:

settings [+abefhkmnptuvxBCEHPT] [+o 옵션 이름] [arg ...]

옵션이 없으면 각 쉘 변수의 이름과 값은 현재 설정된 변수를 설정하거나 재설정하기 위한 입력으로 재사용할 수 있는 형식으로 표시됩니다.

...

별도로 명시하지 않는 한 이러한 옵션은 기본적으로 꺼져 있습니다. - 대신 +를 사용하면 이러한 옵션이 꺼집니다. 옵션은 쉘 호출에 대한 인수로 지정될 수도 있습니다. 현재 옵션 세트는 $-에서 찾을 수 있습니다. 잘못된 옵션이 발생하지 않는 한 반환 상태는 항상 true입니다.

관련 정보