Com base na resposta de @ salutis, criei um script que chamei compe guardei nessas ~/bin/comppesquisas commands', aliasese builtins, (sinalizador de opção, -cabveja a entrada bash man ), com um segundo parâmetro opcional que, se presente, canaliza a saída grepe pesquisa o segundo parâmetro.
Usage: comp string [keyword-for-grep]
Código:
#!/bin/bash
if [ -z "$1" ]; then
echo usage: comp string [keyword-for-grep]
echo
exit
fi
if [ -z "$2" ]; then
compgen -cab -- $1
exit
fi
compgen -cab -- $1 | grep -i $2
Pessoalmente, eu também estaria interessado em descobrir uma maneira de remover o último comando do histórico do shell no script (algo relacionado a history -d) para que, ao pesquisar no bashhistórico, não encontrarei compentradas. Eu sei que também posso fazer isso, HISTIGNOREmas o linux é bastante poderoso, portanto deve haver uma maneira de fazer isso a partir do arquivo de script também - certo?
grepregex?(y or n or g[rep])? Detesto parecer pessimista, mas duvido que isso possa ser feito sem adicioná-lo ao código do bash.