From: Johannes Schindelin Date: Wed, 16 Jul 2008 00:50:48 GMT Subject: Re: Useful tip about !aliases Message-ID: In-Reply-To: <3BD7F543-7CB4-48B6-8D2C-DEA2ADC6EF5F@sb.org> Hi, On Tue, 15 Jul 2008, Kevin Ballard wrote: > Here's something I discovered recently about !aliases that other folks might > find useful. The canonical form for a shell alias is something like > > git config alias.foo '!echo bar' > > where any args given to foo, as in `git foo blah` are passed along to the > shell, so in this case `echo bar blah` would be invoked. > > Something that I find very useful is the ability to interpolate arguments into > the middle of a command. This doesn't seem possible at first glance, not > without a helper script. But it certainly is possible, with the help of shell > functions: > > git config alias.reverse '!foo () { args=''; while [[ -n "$*" ]]; do args="$1 > $args"; shift; done; echo $args; }; foo' On the gitwiki, you will find a more elegant solution using "sh -c". Ciao, Dscho