![zsh: 옵션이 활성화되어 있는지 확인하는 방법](https://linux55.com/image/52064/zsh%3A%20%EC%98%B5%EC%85%98%EC%9D%B4%20%ED%99%9C%EC%84%B1%ED%99%94%EB%90%98%EC%96%B4%20%EC%9E%88%EB%8A%94%EC%A7%80%20%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
옵션을 활성화하려면 다음을 사용할 수 있습니다 setopt
.
setopt extended_glob
옵션이 현재 활성화되어 있는지 어떻게 확인할 수 있나요?
답변1
에서는 활성화된 옵션 표시 및 활성화되지 않은 옵션 표시를 zsh
사용할 수 있습니다 .setopt
unsetopt
$ setopt
autocd
histignorealldups
interactive
monitor
sharehistory
shinstdin
zle
$ unsetopt
noaliases
allexport
noalwayslastprompt
alwaystoend
noappendhistory
autocd
autocontinue
noautolist
noautomenu
autonamedirs
.....
에서 bash
를 사용할 수 있습니다 shopt -p
.
답변2
그냥 사용:
if [[ -o extended_glob ]]; then
echo it is set
fi
이는 또한 bash
설정되는 옵션에만 적용되며 set -o
설정되는 옵션에는 적용되지 않습니다 shopt
. 사용 하거나 설정할 zsh
수 있는 옵션 세트는 하나만 있습니다 .setopt
set -o
bash
(또는 다른 POSIX 셸) 과 마찬가지로 현재 옵션 설정을 실행 set -o
하거나 set +o
볼 수도 있습니다.
답변3
이것zsh/parameter
모듈은 기본 배포의 일부이며 연관 배열을 제공합니다.options
어떤 옵션이 켜져 있는지 나타냅니다.
if [[ $options[extended_glob] = on ]]; then …
단일 문자 별칭이 있는 옵션의 경우(그렇지 않음 extended_glob
) 다음을 확인할 수도 있습니다.$-
.
어떤 옵션이 활성화되어 있는지 테스트하는 것은 거의 유용하지 않습니다. 코드의 옵션을 활성화하거나 비활성화해야 하는 경우 코드를 함수에 넣고 설정하세요.local_options
옵션. 전화해도됩니다emulate
기본 상태로 재설정 옵션이 내장되어 있습니다.
my_function () {
setopt extended_glob local_options
}
another_function () {
emulate -L zsh
setopt extended_glob
}
답변4
() {[[ -v argv[1] && -v options[$1] ]] && echo "option <$1> is $options[$1]" || echo "no such option <$1>" } <optname>
<optname>
팔로우https://zsh.sourceforge.io/Doc/Release/Options.html
예:
() {[[ -v argv[1] && -v options[$1] ]] && echo "option <$1> is $options[$1]" || echo "no such option <$1>" } LOCAL_TRAPS
option <LOCAL_TRAPS> is off
() {[[ -v argv[1] && -v options[$1] ]] && echo "option <$1> is $options[$1]" || echo "no such option <$1>" } localtraps
option <localtraps> is off
() {[[ -v argv[1] && -v options[$1] ]] && echo "option <$1> is $options[$1]" || echo "no such option <$1>" } localtrap
no such option <localtrap>