Wenn Sie rlwrap
(Debian-Paket rlwrap
) haben, könnten Sie Folgendes verwenden:
LINE=$(rlwrap head -n1)
Die Datei ~/.head_history
wird standardmäßig verwendet. ( man rlwrap
für weitere Details, einschließlich Optionen zum Angeben eines Protokolldateinamens.)
Eine andere Möglichkeit besteht darin, read
in einer Subshell mit HISTFILE
einer eigenen Verlaufsdatei zu arbeiten. Sie müssen jedoch noch viel mehr Arbeit erledigen, da der Verlauf zwar read -e
verwendet, jedoch nicht aktualisiert wird. Du brauchst wahrscheinlich so etwas wie:
LINE=$(bash -c 'HISTFILE=/path/to/history_file; history -r; read -e LINE; history -s "$LINE"; history -w; echo "$LINE"')