Как вызвать history/fc из скрипта ZSH

Как вызвать history/fc из скрипта ZSH

Я пытаюсь написать скрипт для GeekTool, который будет отображать мои последние команды X (20) на экране.

Я могу либо отобразить файл, либо использовать вывод команды оболочки (предпочтительнее).

Проблема в том, что когда я запускаю команду из скрипта, я получаю ~/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

Команда 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

Связанный контент