[eside-ghost] Completar comandos en programa Bash
Jorge García - Bardok
bardok en gmail.com
Dom Feb 17 00:36:35 CET 2013
He estado investigando un poquillo (en Ubuntu) (info sacada de
http://tldp.org/LDP/abs/html/tabexpansion.html):
En el directorio "/usr/share/bash-completion/completions" tienes un fichero
por cada comando que permite autocompletado de parámetros.
Imaginemos que tengo un script que requiere un parámetro:
#! /bin/bash
param=$1
if [ $param = '--gatito' ] ; then
echo 'Miau';
elif [ $param = '--perrito' ] ; then
echo 'Guau';
fi
Creo un segundo fichero llamado igual que el script, pero sin ".sh":
_animal()
{
local cur
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
case "$cur" in
-*)
COMPREPLY=( $( compgen -W '--gatito --perrito' -- $cur ) );;
esac
return 0
}
E indico que quiero que esa función sea llamada cada vez que quiera
autocompletar:
$ source animal
$ complete -F _animal -o filenames ./animal.sh
Si ahora escribo:
$./animal.sh -[tab]
Me indica ambas opciones. Lo que no he conseguido es que se quede
permanente... he copiado el script en /usr/bin, el fichero con la función
en /usr/share/bash-completion/completions, pero no encuentro cómo
automatizar el último paso para no tener que hacerlo a mano (sí, puedes
cambiar el .bashrc, pero tiene que haber un modo más elegante de hacerlo,
porque cada vez que instalas un paquete con autocomplete no modifica el
.bashrc para añadir sus movidas).
Si alguien es capaz de resolver este último misterio, se lo agradezco yo
también :)
Un abrazo!
--
Jorge García (aka Bardok)
---
Sending A Message To All
Sending A Message To God
We Must Bring Light To The Darkness
In Time We Will Rise Above
"Ark - Heal The Waters"
2013/2/16 Álvaro Morán <nirvana644 en gmail.com>
> Hola,
>
> he creado un programa/script en bash que admite tres opciones según se le
> indique la palabra "inicio" "script +nombreDelScript" y "salir" y me
> preguntaba si existe alguna posibilidad de que bash me complete la opción o
> me indique las disponibles del mismo modo que al por ejemplo escribir el
> comando "ls" y pulsar el tabulador te da información o te completa la
> opción medio escrita.
>
> Gracias de antemano,
> Álvaro
>
> _______________________________________________
> eside-ghost mailing list
> eside-ghost en listas.deusto.es
> https://listas.deusto.es/mailman/listinfo/eside-ghost
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://listas.deusto.es/mailman/private/eside-ghost/attachments/20130217/a115033e/attachment.html>
Más información sobre la lista de distribución eside-ghost