如何从 ZSH 脚本调用 history/fc

And*_*rns 2 zsh

我正在尝试为 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
Run Code Online (Sandbox Code Playgroud)

fc如果我从 shell 运行该命令,则该命令有效;但是,如果我从脚本运行它,则会失败。我认为这与它无法读取历史文件有关,但没有对此进行确认。

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

Fra*_*sco 5

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

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

export HISTFILE=~/.zsh_history 
fc -R
fc -l -20
Run Code Online (Sandbox Code Playgroud)