bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Alias in command substitution


From: Kerin Millar
Subject: Re: Alias in command substitution
Date: Wed, 21 Jun 2023 14:12:03 +0100

On Wed, 21 Jun 2023 09:01:20 -0400
Greg Wooledge <greg@wooledge.org> wrote:

> On Wed, Jun 21, 2023 at 09:54:30AM +0100, Kerin Millar wrote:
> > On Wed, 21 Jun 2023 14:11:28 +0530
> > LitHack <lithack0@gmail.com> wrote:
> > 
> > > But why this not worked in zsh.
> > 
> > I don't use zsh. A fairly plausible explanation would be that its alias 
> > builtin ignores the request to declare an alias, if issued in a subshell.
> 
> I don't normally use it either, so let's try it and see:
> 
> unicorn:~$ zsh
> greg@unicorn ~ % alias
> which-command=whence
> greg@unicorn ~ % (alias)
> which-command=whence
> greg@unicorn ~ % (alias x=date; alias)
> which-command=whence
> x=date
> 
> The alias definition occurs in the subshell, but the output of the "alias"
> command differs from bash's.  Running zsh's "alias" output as a command
> would only give you a variable assignment, not an alias assignment.  Cf.
> bash:
> 
> unicorn:~$ alias
> alias cls='tput clear; tput cup 99 0'
> [...]
> 
> Bash's output includes the "alias" command name before the x=y bits.
> Zsh's outpt does not.

Ah. I had to look it up to be certain but it transpires that this is the 
POSIXLY correct thing to do, so to speak. Bash does the same with -o posix.

-- 
Kerin Millar



reply via email to

[Prev in Thread] Current Thread [Next in Thread]