Se você tem rlwrap
(debian package rlwrap
), então você pode usar algo como:
LINE=$(rlwrap head -n1)
que usará o arquivo ~/.head_history
por padrão. ( man rlwrap
para mais detalhes, incluindo opções para especificar um nome de arquivo histórico.)
Outra possibilidade é executar read
em um subshell com HISTFILE
definido para seu próprio arquivo de histórico, mas você precisará fazer muito mais trabalho porque, embora read -e
use , história, não atualiza. Então você provavelmente precisará de algo como:
LINE=$(bash -c 'HISTFILE=/path/to/history_file;
history -r; read -e LINE;
history -s "$LINE"; history -w;
echo "$LINE"')