On Wed, 21 Jun 2023 13:40:56 +0530
LitHack <litha...@gmail.com> wrote:

> Normally declaring a alias inside the command substitution would not
> reflect in main shell like........
> lithack@aura:~$ `alias l=ls`
> lithack@aura:~$ l
> l: command not found
> But using this command .....
> lithack@aura:~$ `alias l=ls;alias`
> lithack@aura:~$ l
>  api      Desktop  Downloads      Music __py__      v      v.zip
>  Arjun      dir  idafree82_linux.run      Pictures snap     vi
>  BurpSuiteCommunity   Documents  'IDA Freeware 8.2.desktop'   Public
> Templates   Videos
> It runs in main shell. Is this a bug?

No. This is what happens.

1) an alias is declared in the subshell incurred by the `command substitution`
2) the alias builtin is executed, which prints out a declaration of the 
just-declared alias
3) the command substitution causes that which was just printed to be evaluated 
in the original shell
4) an alias is thus declared in the original shell

As Lawrence advised in a different thread, such questions would be more 
appropriately posed at the help-bash list.

-- 
Kerin Millar

Reply via email to