Com base na resposta de @ salutis, criei um script que chamei comp
e guardei nessas ~/bin/comp
pesquisas commands
', aliases
e builtins
, (sinalizador de opção, -cab
veja a entrada bash man ), com um segundo parâmetro opcional que, se presente, canaliza a saída grep
e 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 bash
histórico, não encontrarei comp
entradas. Eu sei que também posso fazer isso, HISTIGNORE
mas o linux é bastante poderoso, portanto deve haver uma maneira de fazer isso a partir do arquivo de script também - certo?
grep
regex?(y or n or g[rep])
? Detesto parecer pessimista, mas duvido que isso possa ser feito sem adicioná-lo ao código do bash.