So rufen Sie history/fc aus einem ZSH-Skript auf

So rufen Sie history/fc aus einem ZSH-Skript auf

Ich versuche, ein Skript für GeekTool zu schreiben, das meine letzten X (20) Befehle auf meinem Bildschirm anzeigt.

Ich kann entweder eine Datei anzeigen oder die Ausgabe eines Shell-Befehls verwenden (bevorzugt).

~/bin/update_history_file.sh:fc:5: no such event: 0Das Problem besteht darin, dass eine Fehlermeldung angezeigt wird, wenn ich den Befehl aus einem Skript ausführe .

Meine Skriptdatei ist:

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

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

Der fcBefehl funktioniert, wenn ich ihn von einer Shell aus ausführe. Wenn ich ihn jedoch vom Skript aus ausführe, schlägt er fehl. Ich denke, es hat etwas damit zu tun, dass die Verlaufsdatei nicht gelesen werden kann, habe dafür aber keine Bestätigung.

Ich kann die Datei nicht direkt verwenden, .zsh_historyda ich den erweiterten Verlauf von ZSH verwende und dieser über eingebettete Metadaten verfügt.

Antwort1

Sie sollten ein hinzufügen, fc -Rum das Lesen der Verlaufsdatei zu erzwingen, und dieses löschen-1

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

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

verwandte Informationen