2

Я пытаюсь написать скрипт для 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 ответ1

5

Вы должны добавить fc -R для принудительного чтения файла истории и удалить -1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .