Scripting
從腳本或非互動式 zsh 實例執行 history 或 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 history
但 zsh 不存在該選項。另一種方法是直接訪問
~/.zsh_history
文件,但我會失去對格式支持的history
支持fc
。是否有一個內置實用程序我可以通過管道~/.zsh_history
進行上述格式化?
呼叫
fc -R
以讀取歷史文件。這只會讀取最後的$HISTSIZE
條目,因此HISTSIZE
在呼叫之前設置為較大的值fc
。HISTSIZE=999999999 fc -R ~/.zsh_history