SPUG:Re: aliases, -> Korn Shell vs. PD-ksh

Michael R. Wolf MichaelRunningWolf at att.net
Fri Jan 24 15:23:06 CST 2003


Brian Hatch <spug at ifokr.org> writes:

> Jeremy Mates <jmates at sial.org> writes:
> > My test results, since folks appear to doubt the veracity of my claim
> > that ksh goes "wonky" with the alias definition in question.  Our first
> > contestant is a just-recently-installed Sun Ultra Sparc running OpenBSD
> > 3.2-stable as of 2003-01-21.

Jeremy,

Sorry if I appeared to doubt you.  I was looking for the kinds of
symptoms that you did post below.

> Jeremy Mates <jmates at sial.org> continues:
> > $ uname -a
> > OpenBSD akira.gs.washington.edu 3.2 GENERIC#0 sparc64
> > $ echo $KSH_VERSION
> > @(#)PD KSH v5.2.14 99/07/13.2
> > $ alias cd='\cd "$@" && ls'

Brian,

Thanks for disproving my untested code.

[...]

> Proof:
> 
> 	bash_or_ksh$ alias cd='echo "Arguments $@" && echo "ls"'
> 	bash_or_ksh$ cd /tmp
> 	Arguments
> 	ls /tmp
> 
> 
> 
> If you want $@, you need to use a function.

[...]

After consulting my dogeared Bolsky/Korn book ("The Kornshell Command
and Programming Language" - 1989 version, documenting the 11/16/88
version of ksh), I realized that aliases are a simple textual
substitution, as you illustrated.  Functional call semantics require a
call to a real function (or builtin, or executable).

Sorry for leading folks down a dead end.  I tried to put in my $0.02
on something that I don't use -- aliases -- and failed miserably.
Over the years, I try to use 'em, and keep finding reasons not to.
I've now got yet another reason to pump up ~/bin with scripts instead
of mucking ~/.profile or my $ENV file.

-- 
Michael R. Wolf
    All mammals learn by playing!
        MichaelRunningWolf at att.net




More information about the spug-list mailing list