Basado en la respuesta de @ salutis, creé un script que llamé compy almacené en las ~/bin/compbúsquedas commands', aliasesy builtins, (la opción marca -cabver la entrada bash man ), con un segundo parámetro opcional que, si está presente, canaliza la salida grepy busca el 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
Personalmente, también me interesaría encontrar una forma de eliminar el último comando del historial de shell en el script (algo relacionado con history -d) para que cuando bashbusque en el historial no encuentre compentradas. Sé que también puedo hacer esto, HISTIGNOREpero Linux es bastante poderoso, por lo que también debe haber una forma de hacerlo desde el archivo de script, ¿verdad?
grepexpresión regular?(y or n or g[rep])? Odio sonar pesimista, pero dudo que esto se pueda hacer sin agregarlo al código bash.