Wie in this answer gezeigt, ist es möglich read
mit Readline (-e
) in bash zu verwenden Vorgeschichte Artikel zurückzukehren, indem sie die nach oben und unten Tasten:Wie macht man mit den Pfeil-nach-oben- und Pfeil-nach-unten-Tasten Verlaufseinträge in einem Skript mit zsh?
#! /usr/bin/env bash
while IFS="" read -p "input> " -e line; do
history -s "$line" # append $line to local history
done
Was ist der richtige Weg, dies in zsh zu tun? (Benutzereingaben in einer Schleife erhalten und das Beenden des Schlüsselverlaufs zulassen). Das funktioniert nicht:
#! /usr/bin/env zsh
while IFS="" vared -p "input> " -c line; do
done
Ich denke, Verlaufsvervollständigung ist standardmäßig für Skripts in Zsh deaktiviert. Außerdem möchte ich nicht, dass die Historie von der Shell kommt, sondern von der Eingabe, die im Skript eingegeben wird.
Danke für die Antwort behandelt nutzen sollten! 'setopt interactive' funktioniert jedoch nicht. – nachocab
das funktioniert tatsächlich nicht. Dieses Flag kann nicht gesetzt werden, sobald die Shell aktiv ist. Ich habe das Skript leicht bearbeitet. In jedem Fall sollten Sie nur eine normale interaktive Shell verwenden, keine Konfigurationsdateien – Francisco
Hmm, es funktioniert immer noch nicht (ich bin auf OSX und ich bekomme einen Piepton, wenn ich die Pfeiltasten benutze). Der Grund, warum ich es nicht als eine neue Shell betreibe, ist, dass dies nur ein Spielzeugbeispiel ist. Das eigentliche Skript macht andere Dinge mit den Benutzereingaben. – nachocab