On Tue, Oct 3, 2023, at 5:54 AM, Дилян Палаузов wrote: > https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_03_01 > says: > > 2.3.1 Alias Substitution > > When used as specified by this volume of POSIX.1-2017, alias definitions > shall not be inherited by separate invocations of the shell or by the > utility execution environments invoked by the shell. > > > So a subshell shall have no knowledge about the aliases from the > supershell You are mistaken; subshells are not "separate invocations". See section 2.12: A subshell environment shall be created as a duplicate of the shell environment, except that signal traps that are not being ignored shall be set to the default action. > These programs > > #!/bin/bash > alias wslpath=echo > find `wslpath /tmp` > > and > > #!/bin/dash > alias wslpath=echo > find `wslpath /tmp` > > produce different results (bash 5.2.15-3.fc38, dash 0.5.12-1.fc38) when > executed on a WSL2 system. The former program shows the content of the > current directory, the latter program shows the content of /tmp . That is because aliases are not expanded at all in noninteractive bash "native mode" shells. If you were to run bash as "sh" or with its "--posix" option, then you would see the same behavior as with dash. -- vq