Como posso fazer com que o read
comando interno suporte o histórico, pressionando a tecla para cima / para baixo para alternar entre eles?
Eu tentei pegar quando você pressiona a tecla para cima, mas parece que não funciona read
:
read -p '> ' -n 3 foo
echo
echo -n "$foo" | hexdump
Pressionar as teclas de seta parece funcionar e eu posso detectá-lo usando isso; no entanto, se eu pressionar aa↑, ele falhará, pois só lerá o primeiro caractere do identificador da seta para cima, enquanto o terceiro é necessário para distinguir as diferentes setas. chaves.
rlwrap
porque (pelo menos na minha máquina)rlwrap
é incapaz de lidar com o CTRL-C normalmente, por exemplo, tente executarUSERINPUT=$(rlwrap -o cat)
e pressionar CTRL-C e veja como o seu terminal se comporta depois (execute oreset
comando para retornar a um estado sadio novamente) .