我正在尝试为 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