스크립트 또는 비대화형 zsh 인스턴스에서 기록 또는 fc 실행

스크립트 또는 비대화형 zsh 인스턴스에서 기록 또는 fc 실행

zsh 문서를 읽고 비대화형 모드에서 전체 콘텐츠에 액세스 하지 않음 history. 검색 유틸리티를 스크립팅할 수 있도록 이를 구현하는 방법을 찾고 있습니다. 내가 시도한 것들:fc~/.zsh_history

➜  ~ fc -l 0 1
    1  ls
➜  ~ echo $HISTFILE
/Users/username/.zsh_history
➜  ~ zsh -c 'echo $HISTFILE'

➜  ~ zsh -c 'HISTFILE=~/.zsh_history; echo $HISTFILE'
/Users/username/.zsh_history
➜  ~ zsh -c 'HISTFILE=~/.zsh_history; history'
zsh:fc:1: no such event: 1
➜  ~ zsh -c 'HISTFILE=~/.zsh_history; fc -l 0 1'
zsh:fc:1: no events in that range
➜  ~ zsh -c 'HISTFILE=~/.zsh_history; fc -R; fc -l 0 1'
zsh:fc:1: no events in that range
➜  ~ zsh -c 'HISTFILE=~/.zsh_history; fc -R -l 0 1'
<NO OUTPUT>

Bash에서는 기록 옵션을 활성화할 수 있지만 set -o historyzsh에는 존재하지 않습니다.

또 다른 방법은 파일에 직접 액세스하는 것이지만, 그렇게 하면 ~/.zsh_history형식 지원이 손실됩니다. 파이프를 통해 위의 포맷을 수행할 수 있는 내장 유틸리티가 있습니까?historyfc~/.zsh_history

답변1

fc -R기록 파일을 읽기 위해 호출됩니다 . 이는 마지막 $HISTSIZE항목 만 읽으므로 HISTSIZE호출하기 전에 더 큰 값으로 설정하십시오 fc.

HISTSIZE=999999999
fc -R ~/.zsh_history

관련 정보