Basado en la respuesta de @ salutis, creé un script que llamé comp
y almacené en las ~/bin/comp
búsquedas commands
', aliases
y builtins
, (la opción marca -cab
ver la entrada bash man ), con un segundo parámetro opcional que, si está presente, canaliza la salida grep
y 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 bash
busque en el historial no encuentre comp
entradas. Sé que también puedo hacer esto, HISTIGNORE
pero Linux es bastante poderoso, por lo que también debe haber una forma de hacerlo desde el archivo de script, ¿verdad?
grep
expresión regular?(y or n or g[rep])
? Odio sonar pesimista, pero dudo que esto se pueda hacer sin agregarlo al código bash.