On 25 Feb, 2004, at 02:43, Kirk McElhearn wrote: > On 2/25/04 5:38 AM, "Brian Medley" <bpm-list-osx-unix at 4321.tv> wrote: > >>> I have the following alias for tcsh: >>> >>> alias dict ?curl -s dict://dict.org/d:\! <#_msocom_1> :1 | egrep -v >>> '^22.*|^250.*|^150.*'" >>> >>> I want to rewrite this for bash, but, as far as I understand, \! >>> doesn't >>> work in bash aliases. Does anyone out there who is a bash expert >>> know if >>> this is correct? If so, how can I get this to work in bash? >> >> Are you trying to use arguments? If so, this might be helpful from >> the >> bash man page: >> >> There is no mechanism for using arguments in the replacement text. >> If arguments are needed, a shell function should be used (see >> FUNCTIONS below). > > Yes, that's what I found. The original tcsh alias has the argument \!. > Is > there no way other than using functions? Because then it won't work as > an > alias, right? It'd have to be a shell script, and that's something I > want to > avoid. This is what I use to replace \!* in one case. Don't know if it will work in yours or not. (Complements of the ZSH mailing list.) # ------------------------------------- # set bash defaults # ------------------------------------- for the ls comand: # to get bash to do what tcsh does -- with: # alias ll 'ls -lag \!* | more' # this function, works with ksh, bash, zsh: ll() { /bin/ls -alsv $* | less } # T.T.F.N. William H. Magill # Beige G3 - Rev A motherboard - 768 Meg # Flat-panel iMac (2.1) 800MHz - Super Drive - 768 Meg # PWS433a [Alpha 21164 Rev 7.2 (EV56)- 64 Meg]- Tru64 5.1a # XP1000 - [Alpha EV6] magill at mcgillsociety.org magill at acm.org magill at mac.com