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: 0
Das 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 fc
Befehl 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_history
da ich den erweiterten Verlauf von ZSH verwende und dieser über eingebettete Metadaten verfügt.
Antwort1
Sie sollten ein hinzufügen, fc -R
um 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