Ich möchte ein ZSH-Skript verwenden, um einen Befehl an den Befehlsverlauf anzuhängen, sodass er angezeigt wird, wenn ich den Aufwärtspfeil drücke. Ich habe eine Zeile an ${HISTFILE} angehängt, und sie wird dort als letzte Zeile angezeigt, aber die Aufwärtspfeil-Aktion scheint sie zu ignorieren.
Ich sehe, dass zsh parallel zur Verlaufsdatei einen Sitzungsverlauf verwaltet, aber ich habe noch keine Möglichkeit gesehen, diesen zu erweitern oder auf andere Weise das zu erreichen, was ich vorhabe. Gibt es eine Möglichkeit, dies zu tun?
Antwort1
Sie können hierfür print -s
oder verwenden:print -S
-s
- Platzieren Sie die Ergebnisse in der Verlaufsliste statt in der Standardausgabe. Jedes Argument des Druckbefehls wird im Verlauf als einzelnes Wort behandelt, unabhängig von seinem Inhalt.
-S
- Platzieren Sie die Ergebnisse in der Verlaufsliste statt in der Standardausgabe. In diesem Fall ist nur ein einziges Argument zulässig; es wird in Wörter aufgeteilt, als wäre es eine vollständige Shell-Befehlszeile. Der Effekt ist ähnlich dem Lesen der Zeile aus einer Verlaufsdatei mit aktivierter
HIST_LEX_WORDS
Option.
Sehenhttps://zsh.sourceforge.io/Doc/Release/Shell-Builtin-Commands.html#index-print