[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Alias in command substitution
From: |
Greg Wooledge |
Subject: |
Re: Alias in command substitution |
Date: |
Wed, 21 Jun 2023 09:01:20 -0400 |
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.