
옵션을 활성화하려면 를 사용할 수 있습니다 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
(또는 다른 POSIX 셸) 과 마찬가지로 현재 옵션 설정을 보거나 볼 수도 bash
있습니다 .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>