linux-l: complete in bash
Soeren Sonnenburg
sonnenburg at informatik.hu-berlin.de
Di Jan 15 08:14:17 CET 2002
On Mon, Jan 14, 2002 at 11:57:02PM +0100, Ralph Angenendt wrote:
> On Mon, Jan 14, 2002 at 09:11:55PM +0100, Soeren Sonnenburg wrote:
> > hi!
> >
> > weiss jemand, ob man complete regeln bauen kann fuer folgendes beispiel
> > (in bash):
> >
> > gzip <tab> komplettiert saemtliche files ausser *.gz files
> > gzip -d <tab> komplettiert nur *.gz files
>
> <http://www.caliban.org/bash/index.shtml#completion>
>
> gzip -d funktioniert leider nicht, dafür aber gunzip <TAB> <TAB>,
> welches dir nur .gz und Directories anzeigt.
>
> > Ansonsten suche ich noch eine moeglichst grosse complete liste, so mit
> > apt, dpkg und allem schnickschnack :-)
>
> Ist ganz netter Kram drin: ssh-completion anhand der .ssh/known_hosts,
> mpg123 zeigt nur .mp3s an, unalias nur aliase, ee und xv nur Bilder
> und und und.
Cool. Ist das doch glatt seit dem 9. in debian unstable :-)
Ich hab das anhand der tollen Beispiele dann auch fuer gzip gebastelt.
Hier mein Vorschlag:
_gzip_func()
{
cur=${COMP_WORDS[COMP_CWORD]}
prev=${COMP_WORDS[COMP_CWORD-1]}
case "$cur" in
-*d) COMPREPLY=( $(compgen -f -X '!*.+(gz|tgz)' $cur ) ); return 0;
esac
case "$prev" in
-*d) COMPREPLY=( $(compgen -f -X '!*.+(gz|tgz)' $cur ) ); return 0;
esac
COMPREPLY=( $(compgen -f -X '*.+(gz|tgz)' $cur ) );
}
complete -F _gzip_func gzip
S.
Mehr Informationen über die Mailingliste linux-l