如何从 ZSH 脚本调用 history/fc

如何从 ZSH 脚本调用 history/fc

我正在尝试为 GeekTool 编写一个脚本,以便在屏幕上显示我的最后 X (20) 个命令。

我可以显示一个文件或者使用 shell 命令的输出(首选)。

问题是,当我从脚本运行命令时出现~/bin/update_history_file.sh:fc:5: no such event: 0错误。

我的脚本文件是:

#!/bin/zsh --login
#history | tail -n 25 > /tmp/history.txt

export HISTFILE=~/.zsh_history 
fc -l -20 -1

如果我从 shell 运行该命令,该fc命令将正常工作;但如果我从脚本运行该命令,则该命令将失败。我认为这与无法读取历史文件有关,但尚未确认这一点。

.zsh_history由于我使用 ZSH 扩展历史记录并嵌入了元数据,因此我无法直接使用该文件。

答案1

您应该添加一个fc -R强制读取历史文件,然后删除它-1

#!/bin/zsh --login
#history | tail -n 25 > /tmp/history.txt

export HISTFILE=~/.zsh_history 
fc -R
fc -l -20

相关内容