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