Eu estou fazendo uma função bash que mostra um menu ligado a pgdown para navegar através de uma janela que lista meu histórico (como 4dos / 4nt etcetera). Eu fiz isso, uma linha é sempre destacada.
$ pos é onde no histórico eu quero que a lista comece
$ function hidown (){ if [ "$down" -gt 1 ]; then ((--down)); else down=100; fi ; hismenu_down "$down"; }
$ bind -x '"\e[6~":"hidowm"'
$ down=100
'
function hismenu_down()
{
pos=$1; hilength=10; hirange="$(($hilength+$pos))";
hisstring=$(history | tail -n $hirange)
for ((i=hilength; i>=0; --i)); do
if [ $i == 6 ]; then tput setaf 7; else tput setaf 6; fi;
tput cup $i 55;
printf "$hisstring" | tail -n "$(($i+$pos))" | head -n1 | cut -c1-105;
done; tput sgr0; tput rc;
}
Eu gostaria de ter a saída de texto destacada na linha de comando, então eu só tenho que colocar o texto de retorno ou editar antes de eu voltar para executar o comando.
Eu também ligarei temporariamente a chave esc para remover o código da linha de comando (e possíveis outras ações para excluir o código da lista de histórico) e ao mesmo tempo religar a mesma chave para depois ser ligado ao seu padrão.
Mas essa parte eu posso explicar por mim mesmo. O que eu estou pedindo, é apenas isso - como eu coloco uma string na linha de comando?