Você pode usar rlwrap
para adicionar suporte readline (incluindo conclusão e histórico / rechamada) a quase qualquer programa de linha de comando, incluindo scripts de shell.
Consulte man rlwrap
para obter mais detalhes e / ou edite sua pergunta para incluir um script de shell de amostra mínimo, se desejar mais conselhos específicos sobre como usar o rlwrap com ele.
rlwrap
é empacotado para a maioria das distribuições Linux, e você pode encontrar a fonte em link
BTW, o campo de descrição do pacote rlwrap do debian diz:
Description-en: readline feature command line wrapper This package provides a small utility that uses the GNU readline library to allow the editing of keyboard input for any other command. Input history is remembered across invocations, separately for each command; history completion and search work as in bash and completion word lists can be specified on the command line.
BTW, uma coisa útil mencionada na página do manual é:
In a shell script, use rlwrap in 'one-shot' mode as a replacement for read
order=$(rlwrap -pYellow -S 'Your pizza? ' -H past_orders -P Margherita -o cat)
Isso seria um substituto para algo como read -p 'Your order? ' order