Como chamar history/fc de um script ZSH

Como chamar history/fc de um script ZSH

Estou tentando escrever um script para GeekTool que mostrará meus últimos comandos X (20) na tela.

Posso exibir um arquivo ou usar a saída de um comando shell (preferencial).

O problema é que quando executo o comando de um script recebo ~/bin/update_history_file.sh:fc:5: no such event: 0um erro.

Meu arquivo de script é:

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

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

O fccomando funciona se eu executá-lo a partir de um shell; no entanto, se eu executá-lo a partir do script, ele falhará. Acho que tem algo a ver com não conseguir ler o arquivo de histórico, mas não tenho confirmação disso.

Não consigo usar o .zsh_historyarquivo diretamente porque uso o histórico estendido do ZSH e tenho metadados incorporados.

Responder1

Você deve adicionar um fc -Rpara forçar a leitura do arquivo de histórico e excluí-lo-1

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

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

informação relacionada