다음과 같은 변수로 테스트할 때:
test="abc"
위 명령은 기록에 저장되지 않습니다. 일부 명령을 엉망으로 만들었음에 틀림없지 setopt
만 어떤 명령이 이에 영향을 미쳤는지 모르겠습니다.
그렇다면 zsh 기록 옵션을 사용하면 var를 zsh 기록에 저장하지 못하게 할 수 있습니까? 나는 HIST_NO_FUNCTIONS
그것을 의심하기로 결정했습니다.
편집: 완료setopt
autocd
autonamedirs
autopushd
extendedglob
extendedhistory
noglobalrcs
histexpiredupsfirst
histfindnodups
histignorealldups
histignoredups
histignorespace
histnofunctions
histnostore
histreduceblanks
histsavenodups
histverify
incappendhistory
interactive
interactivecomments
login
magicequalsubst
monitor
nonotify
nullglob
promptsubst
pushdignoredups
pushdminus
pushdsilent
pushdtohome
rmstarsilent
sharehistory
shinstdin
zle
답변1
며칠 전,또 다른 문제, 귀하는 다음 항목에 추가했다고 말했습니다 ~/.zshrc
:
zshaddhistory() { whence ${${(z)1}[1]} >| /dev/null || return 1 }
이로 인해 첫 번째 단어(따옴표 포함)가 기존 명령의 이름이 아닌 명령줄이 기록에 추가되지 않습니다.
test="abc"
은(는) 시스템에 존재하는 명령의 이름이 아니므로 기록에 저장되지 않습니다.
또한 "echo" "foo"
, 또는 <input tr a b >output
, 또는 (foo; bar) | baz
... 과 같은 명령줄은 저장되지 않습니다.
@Gilles는 귀하의 질문에 대한 의견에서 이미 이에 대해 경고했습니다.